ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 19.07.2008, 09:00
Karantin
Постоянный
Регистрация: 21.12.2007
Сообщений: 475
Провел на форуме:
1270580

Репутация: 387
Отправить сообщение для Karantin с помощью ICQ
По умолчанию

В ворде нажми альт, выдели горизонтальный блок, который не нужен. Правда если файл громадный замучаешься листать и проще написать программу.
 
Ответить с цитированием

  #12  
Старый 19.07.2008, 12:24
devton
Участник форума
Регистрация: 26.10.2007
Сообщений: 283
Провел на форуме:
2605910

Репутация: 212
По умолчанию

ребята, ваши посты меня реально напугали о_0
ТАК усложнить задачу могут лишь избранные и все они ч0то уже отпостили

Sylar:
1)качаешь HtmlLerz (набор прог для резки текста)
_http://softsearch.ru/programs/ 203-007-htmllerz-pro-download.shtml
2)запускаешь CutText
3)Start Cutoff - в этом окошки стираешь все И жмешь Ентер (те символ начала фрагмента, который надо вырезать, будет символ переноса строки)
4)End Cutoff - тут символ конца фрагмента те двоеточие :
5)Replace TO - на что заменить удаленный фрагмент - тут тоЖ Ентер

вот и все - прога вырежет все фрагменты от начала строки до первого двоеточия и все будет ха-ра-шо
 
Ответить с цитированием

  #13  
Старый 19.07.2008, 14:53
.Sylar
Познающий
Регистрация: 15.07.2008
Сообщений: 37
Провел на форуме:
310754

Репутация: 37
Отправить сообщение для .Sylar с помощью ICQ
По умолчанию

2Karantin
Текстовая часть в каждой строке разной длины.

2devton
В текстовой части тоже могут быть двоеточия...

Короче реально работал только вариант Delimiter'a

Последний раз редактировалось .Sylar; 19.07.2008 в 15:02..
 
Ответить с цитированием

  #14  
Старый 19.07.2008, 19:26
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме:
2187381

Репутация: 518
По умолчанию

2 Karantin
2 devton
было написано:
Код:
Нужно написать прогу, чтоб она убирала текстовую часть (т.е. А)..............
 
Ответить с цитированием

  #15  
Старый 19.07.2008, 21:04
siw
Новичок
Регистрация: 07.05.2007
Сообщений: 28
Провел на форуме:
171977

Репутация: 54
Отправить сообщение для siw с помощью ICQ
По умолчанию

А если так...

Код:
#include <stdio.h>
#include <string.h>

void main()
  {
    FILE *fpin, *fpout;
    if((fpin = fopen("input.txt", "r")) == NULL) return;
    if((fpout = fopen("output.txt", "w")) == NULL) return;

    int i, dc, len, oc = 0;
    char in[100];
    char out[100];

      while(fgets(in, 100, fpin))
      {
        len = strlen(in);
        dc = oc = 0;
          for(i = 0; i < len; i++)
            {
               if(in[len - i - 1] == ':') dc++;
               if(dc > 4) break;
               out[oc] = in[len - i - 1];
               oc++;
            }
        out[oc] = 0;
        fputs(strrev(out), fpout);
        strcpy(out, "");
      }
    fclose(fpin);
    fclose(fpout);
  }
 
Ответить с цитированием

  #16  
Старый 19.07.2008, 21:35
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме:
2187381

Репутация: 518
По умолчанию

мы видим что ты пишешь в out и считаешь поля и после 5 полей ничего не запишешь, но это несколько не соответствует задаче!

... давайте представим любителей прямой записи из одного массива в другой
ВАРИАНТ 1
Ablablabla:1.....
даже если будет проверка на первом же символе мы определяем что 1-е поле текстовое .... и как итог имеем простую логику !
ВАРИАНТ 2
3.12А:1....
и вот уже любители прямой записи чешут репу как они стерут 3.12 обнаружив следующий символ 'А' .... и их упрощения идут в мусорку строем!
 
Ответить с цитированием

  #17  
Старый 19.07.2008, 21:41
siw
Новичок
Регистрация: 07.05.2007
Сообщений: 28
Провел на форуме:
171977

Репутация: 54
Отправить сообщение для siw с помощью ICQ
По умолчанию

Цитата:
Сообщение от .Sylar  
...
Объясняю как это нужно делать. Пройтись от числа 5 до двоеточия, которое стоит перед первым числом (1). Т.е. просто считать двоеточия, проходя каждую строчку и когда их станет 5(пять) нужно остановиться. Записать результат нужно в новый файл.
...
В моем коде содержимое блоков не проверяется, просто копируется 5 последних, как указал автор
 
Ответить с цитированием

  #18  
Старый 19.07.2008, 21:56
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме:
2187381

Репутация: 518
По умолчанию

в моем даже не останавливается если будет хоть 20-ть блоков! Зачем уменьшать область применимости программы?
 
Ответить с цитированием

  #19  
Старый 19.07.2008, 22:37
siw
Новичок
Регистрация: 07.05.2007
Сообщений: 28
Провел на форуме:
171977

Репутация: 54
Отправить сообщение для siw с помощью ICQ
По умолчанию

Ты прав, тогда зайдем с другой стороны..
Код:
#include <stdio.h>
#include <string.h>

char *get_fstr(char *in, char div)
{
int i, j, start, end, skip, oc = 0;
char out[100];
for(i = 0; i < strlen(in); i++)
  {
    start = i;

    for(int j = 0; i + j < strlen(in); j++)
      {
        if(in[i + j] == div || i + j + 1 == strlen(in))
          {
            end = i + j;
            break;
          }
        if((in[i + j] > 64 && in[i + j] < 91) || (in[i + j] > 96 && in[i + j] < 123)) skip = 1;
      }

    if(start == end) skip = 1;

    if(!skip) for(int j = start; j <= end; j++, oc++) out[oc] = in[j];
    skip = 0;
    i = end;
  }
out[oc] = 0;
return out;
}

void main()
  {
    FILE *fpin, *fpout;
    if((fpin = fopen("input.txt", "r")) == NULL) return;
    if((fpout = fopen("output.txt", "w")) == NULL) return;

    char in[100];
    
    while(fgets(in, 100, fpin)) fputs(get_fstr(in, ':'), fpout);

    fclose(fpin);
    fclose(fpout);
  }
Кроме пропуска блоков с буквами, игнорирует пустые блоки( :: )
Вот пример работы
input.txt

la:la13:11:133:0.00:7:10288:cf:5658:45h456:78
bla!b13:0:1008:0.87:0:13154:77::97

output.txt

11:133:0.00:7:10288:5658:78
0:1008:0.87:0:13154:77:97
 
Ответить с цитированием

  #20  
Старый 19.07.2008, 22:41
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме:
2187381

Репутация: 518
По умолчанию

все прална 8)))
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скачать определенную часть файла. LynXzp Soft - Windows 1 01.03.2008 05:26
Кто силен в bash? помогите плз решить задачки... Dj Skeleton™ *nix 28 19.12.2007 13:03
Права доступа в *nix системах Scipio Авторские статьи 21 16.12.2007 06:10



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ