Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Чтение файла

14K
09 декабря 2006 года
DarkKnight
41 / / 18.11.2006
Как в паскале прочитать первую,потом вторую... строку текстового файла?
257
09 декабря 2006 года
kosfiz
1.6K / / 18.09.2005
 
Код:
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);
14K
09 декабря 2006 года
DarkKnight
41 / / 18.11.2006
спасибо.
а кто что знает про функции CharToOem(Buff) и OemToChar(Buff) ?
261
10 декабря 2006 года
ahilles
1.5K / / 03.11.2005
это уже дельфийские функции их вроде в паскале нет
14K
10 декабря 2006 года
DarkKnight
41 / / 18.11.2006
у меня борланд паскаль.
23K
12 декабря 2006 года
!console!
7 / / 11.12.2006
Цитата: DarkKnight
спасибо.
а кто что знает про функции 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.


Вышеприведенный пример нужно компилировать как консольное приложение, например, при помощи компилятора 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
7.6K
13 декабря 2006 года
Eternal Man
59 / / 07.07.2006
В Паскале также есть маркер конца строки - EoLn (End of Line).
14K
14 декабря 2006 года
DarkKnight
41 / / 18.11.2006
!console!,thx,хоть кто-то ответил...
Eternal Man,это ты про чтение файла или CharToOem(Buff)?
622
19 декабря 2006 года
nilbog
507 / / 19.12.2006
про чтение
посимвольно считывать
 
Код:
while not eaf(f) do
 begin
  while not eoln(f) do
  read(f,x){что-то сделаем с x };
  readln(f)
 end;
14K
19 декабря 2006 года
DarkKnight
41 / / 18.11.2006
nilbog,со строками я работать умею,мне надо было только файл прочитать )
622
19 декабря 2006 года
nilbog
507 / / 19.12.2006
Цитата: DarkKnight
nilbog,со строками я работать умею,мне надо было только файл прочитать )


ну правильно
я со строками не работаю
тебе файл для чего считать нужно?
найти символ? или загнать мн-во
а readln(f) переносит указатель считывания(грубо говоря) на следущую строчку в моем коде
пока readln не сделаю на конце строки eoln будет true выдавать

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог