Форум: "Начинающим";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];
Внизкак избавиться от ограничения ???, а перемещаться по строке до, н Найти похожие ветки
← →
Виталий00 © (2005-10-21 22:56) [0]Здравствуйте!
Как избавиться от ограничения ???,
а перемещаться по строке до, например # или запятой
procedure TForm1.Button2Click(Sender: TObject);
var
FName: textfile;
s: string[17];//как избавиться от ограничения ???, а перемещаться по строке до, например # или запятой
s1: string[27];
s2: string[17];
s3: string[60];
s4: string[7];
s5: string[10];
item: Tlistitem;
begin
AssignFile(FName,"log.txt");
Reset(FName);
try
while not Eof(FName) do
begin
Readln(FName, s, s1, s2, s3, s4, s5);
item:= ListView1.items.add;
item.caption:= s;
item.SubItems.Add(s1);
item.SubItems.Add(s2);
item.SubItems.Add(s3);
item.SubItems.Add(s4);
item.SubItems.Add(s5);
end;
finally
closefile(FName);
end;
end;
← →
Zeqfreed © (2005-10-21 23:09) [1]Виталий00 © (21.10.05 22:56)
Мягко говоря, ...
В общем, сформулируй свой вопрос по-корректней.
Какое такое ограничение? И чем оно тебе мешает?
← →
Виталий00 © (2005-10-21 23:16) [2]У меня прописано ограничение строки, к примеру string[12], что означает что я беру строку в 12 знаков, но как сделать чтобы брать количество знаков из текстового файла например до знака "#" или запятой, т.е. конкретно не прописывать, это будет определено текстом в строке, может это будет 20 знаков!?
← →
Zeqfreed © (2005-10-21 23:22) [3]Виталий00 © (21.10.05 23:16) [2]
Ну, я бы выбрал такой вариант: читать всю строку и делать парсинг (разбор строки на необходимые части).
Напрямую то, что ты хочешь реализовать нельзя.
← →
Виталий00 © (2005-10-21 23:29) [4]Хорошо, но как это сделать? Есть ли примеры?
← →
Zeqfreed © (2005-10-22 00:25) [5]Виталий00 © (21.10.05 23:29) [4]
Можно использовать готовые решения, например, регулярные выражения. Или самому писать ф-цию парсинга, например, основываясь на теорию конечных автоматов или, так сказать, "в лоб" если исходные данные имеют простой формат. Опиши свою задачу более детально.
← →
irishka001 © (2005-10-22 01:00) [6]Пусть есть текстовый файл D:\1.txt, тогда обработчик может иметь вид:
var
f: TextFile;
fname: string;
ch: char;
str:string;
i: integer;
begin
fname:="D:\1.txt";
assignfile(f, fname);
{$I-}
reset(f);
{$I+}
while not Eof(f) do
begin
Readln(f, str);
memo1.Lines.Add(copy(str,1,pos("#", str)-1));
label1.Caption:=label1.Caption+" "+inttostr(pos(str, ","));
end;
closefile(f)
end;
← →
Германн © (2005-10-22 02:26) [7]2 Виталий00 © (21.10.05 23:16) [2]
Могу ошибаться, но, имхо, если разделителем поставить запятую или "табуляцию", то Readln - нормально всё прочитает.
← →
Anatoly Podgoretsky © (2005-10-22 13:17) [8]Вот это совсем не рабочее Readln(FName, s, s1, s2, s3, s4, s5);, можно только так Readln(FName, AnsiString); и далее парсинг
← →
Виталий00 © (2005-10-23 07:48) [9]Спасибо всем за участие и помощь
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.041 c