Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
_FreeMan_
Зарегистрирован: 24.11.2004 Сообщения: 43
|
Добавлено: Пт Июл 01 2005 11:08 Заголовок сообщения: Как читать из файла построчно ...(PASCAL) |
|
|
Добрый день.
Есть такая задача.
Надо читать данные из текстового файла построчно,и сохранить результат в массиве.
Но есть одно но.
В файле стока разбита на 2 части.Разделитель -символ '*'.
Надо чтоб 1 элемент массива содержал 1 часть строки,2 элемент - 2 часть соответственно.
Я могу делать это на нескольких языках,но мне нужно именно на паскале.
Если можно привидите пример.Я в паскале новичок.
Зараннее благодарен! |
|
Вернуться к началу |
|
|
Andrey Grigoriev
Зарегистрирован: 24.06.2004 Сообщения: 17 Откуда: Орел, Россия
|
Добавлено: Пт Июл 01 2005 13:54 Заголовок сообщения: |
|
|
Чтение файла построчно, если я ничего не путаю:
Код: | Var F:Text;
s:string;
begin
assign(f, 'file.txt'); {assignFile, если компилятор - делфи, вроде бы}
reset(f);
while not SeekEOF(F) do
readln(F, s);
close(f); {соотв. CloseFile, в случае делфи}
end. |
Поиск подстроки в строке производится функцией Pos, копирование части строки - copy |
|
Вернуться к началу |
|
|
TYLLlKAH
Зарегистрирован: 12.07.2005 Сообщения: 27 Откуда: Vidnoe
|
Добавлено: Вт Июл 12 2005 15:22 Заголовок сообщения: |
|
|
конечно код левоват, но так вполнятся все поставленые задачи
Код: |
program pr1;
type Row = record
col1:string[размер от 1..255];//первая колонка
sep :char;//разделитель *
col2:string[размер от 1..255];//вторая колонка
end;
const N=100;// размер массива
var r:row;//строка для чтения
d:array[0..N,0..1]of string;//непосредственно массив
f:file;//не типизированный файл
i:integer;//итератор
begin
assign(f,'путь к файлу');
{$I-}//перехват у системы контроля ввода вывода
reset(f,sizeof(r));//открывает файл содержащий даные типа row
{$I+}//возврат системе контроля вода вывода
i:=IOResult;//если всё нормально i =0 иначе i соодержит код ошибки
if i<>0 then
begin
writeln('Ошибка чтения #',i);
exit;
end;
i:=0;
while not eof(f) do
begin
readln(f,r);
d[i,0]:=r.col1;
d[i,1]:=r.col2;
if i=N then breake;//чо бы программа не вывалилась с ошибкой
inc(i);// = i:=i+1;
end;
close(f);
end;
|
_________________ Чуваки языком молотить, не мешки ворочить |
|
Вернуться к началу |
|
|
|