ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

19.07.2008, 09:00
|
|
Постоянный
Регистрация: 21.12.2007
Сообщений: 475
Провел на форуме: 1270580
Репутация:
387
|
|
В ворде нажми альт, выдели горизонтальный блок, который не нужен. Правда если файл громадный замучаешься листать и проще написать программу.
|
|
|

19.07.2008, 12:24
|
|
Участник форума
Регистрация: 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 - на что заменить удаленный фрагмент - тут тоЖ Ентер
вот и все - прога вырежет все фрагменты от начала строки до первого двоеточия и все будет ха-ра-шо
|
|
|

19.07.2008, 14:53
|
|
Познающий
Регистрация: 15.07.2008
Сообщений: 37
Провел на форуме: 310754
Репутация:
37
|
|
2Karantin
Текстовая часть в каждой строке разной длины.
2devton
В текстовой части тоже могут быть двоеточия...
Короче реально работал только вариант Delimiter'a
Последний раз редактировалось .Sylar; 19.07.2008 в 15:02..
|
|
|

19.07.2008, 19:26
|
|
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме: 2187381
Репутация:
518
|
|
2 Karantin
2 devton
было написано:
Код:
Нужно написать прогу, чтоб она убирала текстовую часть (т.е. А)..............
|
|
|

19.07.2008, 21:04
|
|
Новичок
Регистрация: 07.05.2007
Сообщений: 28
Провел на форуме: 171977
Репутация:
54
|
|
А если так...
Код:
#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);
}
|
|
|

19.07.2008, 21:35
|
|
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме: 2187381
Репутация:
518
|
|
мы видим что ты пишешь в out и считаешь поля и после 5 полей ничего не запишешь, но это несколько не соответствует задаче!
... давайте представим любителей прямой записи из одного массива в другой
ВАРИАНТ 1
Ablablabla:1.....
даже если будет проверка на первом же символе мы определяем что 1-е поле текстовое .... и как итог имеем простую логику !
ВАРИАНТ 2
3.12А:1....
и вот уже любители прямой записи чешут репу как они стерут 3.12 обнаружив следующий символ 'А' .... и их упрощения идут в мусорку строем!
|
|
|

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

19.07.2008, 21:56
|
|
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме: 2187381
Репутация:
518
|
|
в моем даже не останавливается если будет хоть 20-ть блоков! Зачем уменьшать область применимости программы?
|
|
|

19.07.2008, 22:37
|
|
Новичок
Регистрация: 07.05.2007
Сообщений: 28
Провел на форуме: 171977
Репутация:
54
|
|
Ты прав, тогда зайдем с другой стороны..
Код:
#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
|
|
|

19.07.2008, 22:41
|
|
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме: 2187381
Репутация:
518
|
|
все прална 8)))
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|