var f:text;
s1,s2:string;
.....
assign(f,'путь/файл');
reset(f);
readln(f,s1);//в s1 первая строка
readln(f,s2);//в s2 вторая строка
close(f);
Чтение файла
Как в паскале прочитать первую,потом вторую... строку текстового файла?
Код:
если по строкам собираешься читать весь файл, то
Код:
reset(f);
while not eof(f) do
readln(f,s);
close(f);
while not eof(f) do
readln(f,s);
close(f);
а кто что знает про функции CharToOem(Buff) и OemToChar(Buff) ?
это уже дельфийские функции их вроде в паскале нет
у меня борланд паскаль.
Цитата: DarkKnight
спасибо.
а кто что знает про функции CharToOem(Buff) и OemToChar(Buff) ?
а кто что знает про функции CharToOem(Buff) и OemToChar(Buff) ?
Это функции не Паскаля, и не Delphi. Это функции WinAPI. Таким образом, они могут быть включены в стандартный комплект _любого_ транслятроа, которые позволяет создавать Windows-приложения.
Что касается самих функций. Первая конвертирует ANSI-строки в формат OEM, а вторая - наоборот OEM в ANSI. Чаще всего их используют в консольных приложениях.
Код:
// hello.pas
uses Windows;
var
buff: array[0..255] of Char;
begin
// неправильно:
Writeln('Привет!');
// правильно
CharToOem('Привет!'+#0, buff);
Writeln(buff);
end.
uses Windows;
var
buff: array[0..255] of Char;
begin
// неправильно:
Writeln('Привет!');
// правильно
CharToOem('Привет!'+#0, buff);
Writeln(buff);
end.
Вышеприведенный пример нужно компилировать как консольное приложение, например, при помощи компилятора Delphi (dcc hello.pas -сс)
В данном случае, Writeln('Привет!') напечатеает непонятный набор символов. А вот Writeln(buff) напечатает ожидаемый "Привет!" Все дело в том, что Windows GUI и Windows Console используют разные кодировки (ANSI и OEM, соответственно).
Пара ссылок на описания функция от m$ (MSDN):
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/resources/strings/stringreference/stringfunctions/chartooem.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/resources/strings/stringreference/stringfunctions/oemtochar.asp
В Паскале также есть маркер конца строки - EoLn (End of Line).
Eternal Man,это ты про чтение файла или CharToOem(Buff)?
посимвольно считывать
Код:
while not eaf(f) do
begin
while not eoln(f) do
read(f,x){что-то сделаем с x };
readln(f)
end;
begin
while not eoln(f) do
read(f,x){что-то сделаем с x };
readln(f)
end;
nilbog,со строками я работать умею,мне надо было только файл прочитать )
Цитата: DarkKnight
nilbog,со строками я работать умею,мне надо было только файл прочитать )
ну правильно
я со строками не работаю
тебе файл для чего считать нужно?
найти символ? или загнать мн-во
а readln(f) переносит указатель считывания(грубо говоря) на следущую строчку в моем коде
пока readln не сделаю на конце строки eoln будет true выдавать