![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чтение файла. Помогите пожалуйста. -)) [D6, WinXP]
Toxa_ua © (2005-11-07 20:40:00)Есть у меяня текстовый файл. Я посимвольно читаю строку этого фйла:
while not Eoln(FileName) do Read(FileName,Ch);
Как мне перейти на следующую строчку и продолжить чтение строки?
Anatoly Podgoretsky (2005-11-08 08:58:00) [1]Toxa_ua © (08.11.05 03:00) [3]
Большой секрет, к строке тоже можно обращаться посимвольно - s[i]
Джо (2005-11-08 03:22:00) [2]В-общем, непонятно откуда такое странное желание читать именно посимвольно. Во-первых, физически читать оно будет все-равно НЕ посимвольно, а во-вторых, ты изначально обрекаешь себя на падение производительности из-за излишне частого обращения к Read. Но, тем не менее, вот прямой ответ на поставленный вопрос:
var
Fv: TextFile;
Ch: Char;
begin
AssignFile (Fv,'d:\1.txt');
Reset (Fv);
while not Eof(Fv) do
begin
Read (Fv,Ch);
// тут что-то делаем с символом
end;
CloseFile (Fv);
end;
Или, если угодно, даже так:
var
Fv: TextFile;
Ch: Char;
begin
AssignFile (Fv,'d:\1.txt');
Reset (Fv);
while not Eof(Fv) do
begin
while not Eoln (Fv) do
begin
Read (Fv,Ch);
// тут что-то делаем с символом
end;
ReadLn (Fv); // пропускаем #13#10
end;
CloseFile (Fv);
end;
Toxa_ua (2005-11-08 03:00:00) [3]Читать всю строку не проще, т.к у меня в строке нахадятся несколько полей информации, разделенных символом '*' (хотя можно и строку, разобрав её потом по символам, но в моем случаем хотелось бы читать по символам). А как сам переход реализовать? -Чему присваивать надо символ с кодом #13 чтоб указатель установился в начало next строки (Readln не пожходит)?
Джо (2005-11-07 20:43:00) [4]читай сразу построчно:
while not Eof(filevar) do ReadLn (filevar,stroka);
umbra (2005-11-07 20:43:00) [5]Не проще ли читать сразу всю строку? а "перейти на новую" просто - пропустите два символа (если файл создан в виндовс, это будут
#13и#10) и читайте посимвольно дальше