Королевство Дельфи"Knowledge itself is power"
F.Bacon
 Лицей
  
Главная
О лицее

Список семинаров

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  00:15[Войти] | [Зарегистрироваться]

Обсуждение материала
Работа с файлами Паскаля - Текстовые файлы
Полный текст материала


Другие публикации автора: Anatoly Podgoretsky

Цитата или краткий комментарий:

«... Текстовые файлы являются подмножеством двоичных файлов, но в отличие от двоичных не могут содержать весь набор символов. ...»


Важно:
  • Страница предназначена для обсуждения материала, его содержания, полезности, соответствия действительности и так далее. Смысл не в разборке, а в приближении к истине :о) и пользе для всех.
  • Любые другие сообщения или вопросы, а так же личные эмоции в адрес авторов и полемика, не относящаяся к теме обсуждаемого материала, будут удаляться без предупреждения авторов, дабы не мешать жителям нормально общаться.
  • При голосовании учитывайте уровень, на который расчитан материал. "Интересность и полезность" имеет смысл оценивать относительно того, кому именно предназначался материал.
  • Размер одного сообщений не должен превышать 5К. Если Вам нужно сказать больше, сделайте это за два раза. Или, что в данной ситуации правильнее, напишите свою статью.
Всегда легче осудить сделанное, нежели сделать самому. Поэтому, пожалуйста, соблюдайте правила Королевства и уважайте друг друга.



Добавить свое мнение.




Смотрите также материалы по темам:
[Текстовые файлы]

Комментарии жителей
Отслеживать это обсуждение

Всего сообщений: 16

10-02-2009 04:15
Прошу пардону. Что-то я того... невнимательный сегодня :(
 Geo


10-02-2009 04:13
>>> И при наличии исключений, и при выходе из подпрограммы по Exit, и при завершении программы по Halt. Такова его особенность.
Да, Geo, с Halt ты немного загнул. Halt - это же обёртка к ExitProcess. А после ExitProcess никакой код того... выполняться не может.

Конкретно в этом примере ничего страшного - все открытые файлы всё равно будут закрыты при выходе. Не совсем красиво, конечно, но допустимо.


10-02-2009 03:27
А Вы не гадайте, а эксперимент проведите ;-) Блок FINALLY выполняется всегда. И при наличии исключений, и при выходе из подпрограммы по Exit, и при завершении программы по Halt. Такова его особенность.

Немного ниже я написал про эксперимент=)


Вот он немного изменённый:

если нажать первую кнопку то выскакивает только надпись except, если вторую то сначала finally, потом except.

procedure TForm1.Button1Click(Sender: TObject);
begin
try
try
Button1.Width := StrToInt( 'Int' );

except
  MessageBox(0, 'except', 'except', 0 );
  Halt(1);
end;
finally
MessageBox(0, 'finally', 'finally', 0 );
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
try
try
Button2.Width := StrToInt( 'Int' );

finally
  MessageBox(0, 'finally', 'finally', 0 );
end;

except
MessageBox(0, 'except', 'except', 0 );
Halt(1);
end;
end;



10-02-2009 03:22
и при завершении программы по Halt
Эксперимент показывает, что против лома нет приема, сообщение finally не выскакивает.


10-02-2009 02:05
>>> По моему, блок finally никогда не выполнится, если произойдет ошибка то в начале будет выполнен блок except и выход из программы
А Вы не гадайте, а эксперимент проведите ;-) Блок FINALLY выполняется всегда. И при наличии исключений, и при выходе из подпрограммы по Exit, и при завершении программы по Halt. Такова его особенность.
 Geo


09-02-2009 23:53
try
    try
      Reset(InFile);                 // открываем входной файл
      Rewrite(OutFile);              // создаем выходной файл
      while not EOF(InFile) do       // крутим пока не конец файла
      begin
        Readln(Infile, S);           // читаем строку
        if Length(S) > 0             // на вход функции можно
        then                         // подавать только не пустые строки
        begin
          OemToChar(Pchar(S), Pchar(S));
          WriteLn(Outfile, S);       // записываем строку
        end
        else
        begin
          WriteLn(Outfile);          // записываем пустую строку
        end;
      end;
    except
      Halt(2);                       // любая ошибка
                                     // не удалось преобразовать файлы
    end;
  finally
    CloseFile(InFile);
    CloseFile(OutFile);
  end;


По окончанию цикла или в случае ошибки управление поступает в защищенный блок finally, где оба файла закрываются и управление передается операционной системе.

По моему, блок finally никогда не выполнится, если произойдет ошибка то в начале будет выполнен блок except и выход из программы.

Возможно, надо поменять местами блоки finally и except.

Для теста написал программу:

procedure TForm1.Button1Click(Sender: TObject);
begin
try
try
Button1.Width := StrToInt( 'Int' );

except
  ShowMessage( 'except' );
  Halt(1);
end;
finally
ShowMessage( 'finally' );
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
try
try
Button2.Width := StrToInt( 'Int' );

finally
  ShowMessage( 'finally' );
end;

except
ShowMessage( 'except' );
Halt(1);
end;
end;


если нажать первую кнопку то выскакивает только надпись except, если вторую то сначала finally, потом except.



18-12-2008 23:34
Ошибка:


InFilename := ParamStr(1);
if ParamCount = 2 then
  OutFileName := ParamStr(1)



Правильно:


InFilename := ParamStr(1);
if ParamCount = 2 then
  OutFileName := ParamStr(2)



Сообщение не подписано


21-04-2006 01:05
Решил проблему перебором текста посимвольно.


20-04-2006 23:00
Подскажите, плиз.
Также считываю текстовый файл по строкам
Readln(LogFile,str);
НО!!! Строку с одним пробелом не считывает, тупо цикл пропускает.
Пустая строка разделитель между блоками (сообщениями).


18-06-2004 23:37
сообщение от автора материала
Такой проблемы быть не должно, это системная библиотека, это может означать какие ни будь проблемы с системой.


18-06-2004 13:17
я начала делать перекодировку и прога ругается на user32.dll. Как этого избежать? Ругается именно на строку OemToChar(Pchar(s), Pchar(s))


18-06-2004 12:55
Спасибо ОГРОМНОЕ!!!
Я как раз сталкнулась с проблемой сохранения текста в файл в кодировке Win-1251


15-12-2003 16:35
Мне понравилось :-)
Анатолий, большое Вам спасибо :)


16-11-2003 22:44
Материал легок и доступен, приятно было с ним ознакомиться.
                 Спасибо автору.


15-09-2003 17:00
сообщение от автора материала
Я как раз думал вю время написания о неоьходимости перекрестных ссылок. В принципе на странице есть ссылки "Предыдущий, следующий, все уроки". Но если решу добавить дополнительные ссылки, то только после окончания добавления всех уроков. Иначе не на что ссылаться.


15-09-2003 13:03
Маленькое замечание, в связанных темах (наподобии этой) если можно сразу приводить список остальных уроков в конце/начале статьи. Этакое "смотри также".


Добавьте свое cообщение

Вашe имя:  [Войти]
Ваш адрес (e-mail):На Королевстве все адреса защищаются от спам-роботов
контрольный вопрос:
Два кольца, два конца, посередине гвоздик.
в качестве ответа на вопрос или загадку следует давать только одно слово в именительном падеже и именно в такой форме, как оно используется в оригинале.
Надоело отвечать на странные вопросы? Зарегистрируйтесь на сайте.
Текст:
Жирный шрифт  Наклонный шрифт  Подчеркнутый шрифт  Выравнивание по центру  Список  Заголовок  Разделительная линия  Код  Маленький шрифт  Крупный шрифт  Цитирование блока текста  Строчное цитирование
  • вопрос Круглого стола № XXX

  • вопрос № YYY в тесте № XXX Рыцарской Квинтаны

  • сообщение № YYY в теме № XXX Базарной площади
  • обсуждение темы № YYY Базарной площади
  •  
     Правила оформления сообщений на Королевстве
      
    Время на сайте: GMT минус 5 часов

    Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
    Функция может не работать в некоторых версиях броузеров.

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования