Налоговая полиция конфисковала большую партию пиратских дисков с Windows-98. То, что программа ненастоящая, стало ясно после того, как она поднялась за считанные секунды и к тому же нормально работала на 486-м процессоре.
procedure ReadDosTextFile(FileName: string; List: TStrings);
var
S: string;
i: integer;
begin
List.BeginUpdate;
try
List.LoadFromFile(FileName);
for i:=0 to List.Count - 1 dobegin
S:=List[i];
OemToChar(PChar(S), PChar(S));
List[i]:=S;
end;
finally
List.EndUpdate;
end;
end;
procedure WriteDosTextFile(FileName: string; List: TStrings);
var
S: string;
I: integer;
L: TStringList;
begin
L:=TStringList.Create;
try
L.Assign(List);
for i:=0 to L.Count - 1 dobegin
S:=L[i];
CharToOem(PChar(S), PChar(S));
L[i]:=S;
end;
L.SaveToFile(FileName);
finally
L.Free;
end;
end;
Пример программирования на языке Delphi, демонстрирующий чтение и запись текстовых файлов в формате DOS (с кодовой страницей OEM). Код содержит два процедура: ReadDosTextFile и WriteDosTextFile.
ReadDosTextFile
Процедура ReadDosTextFile читает содержимое текстового файла в формате DOS (с кодовой страницей OEM) в объект TStrings, который является коллекцией строк. Процедура принимает два параметра:
FileName: имя файла для чтения
List: объект TStrings, в котором будет храниться содержимое файла
Процедура выполняет следующие шаги:
1. Начинает операцию обновления объекта List с помощью BeginUpdate.
2. Пытается загрузить содержимое файла в объект List с помощью LoadFromFile. Метод читает файл в кодовой странице OEM, которая является специфичной для DOS.
3. Итерирует по каждой строке в объекте List и конвертирует ее из кодовой страницы OEM в кодовую страницу ANSI с помощью функции OemToChar.
4. Обновляет объект List с конвертированными строками.
5. Завершает операцию обновления объекта List с помощью EndUpdate.
WriteDosTextFile
Процедура WriteDosTextFile записывает содержимое объекта TStrings в текстовый файл в формате DOS (с кодовой страницей OEM). Процедура принимает два параметра:
FileName: имя файла для записи
List: объект TStrings, содержащий содержимое файла
Процедура выполняет следующие шаги:
1. Создает новый объект TStringList с помощью Create.
2. Присваивает объект List новосозданному объекту TStringList.
3. Итерирует по каждой строке в объекте TStringList и конвертирует ее из кодовой страницы ANSI в кодовую страницу OEM с помощью функции CharToOem.
4. Обновляет объект TStringList с конвертированными строками.
5. Сохраняет содержимое файла в указанное имя файла с помощью SaveToFile.
6. Освобождает память, выделенную для объекта TStringList.
В целом, эти процедуры позволяют читать и записывать текстовые файлы в формате DOS (кодовая страница OEM) с использованием объекта TStrings Delphi. Процедура ReadDosTextFile конвертирует строки кодовой страницы OEM в кодовую страницу ANSI, а процедура WriteDosTextFile конвертирует строки кодовой страницы ANSI в кодовую страницу OEM.
Обратите внимание, что этот код является специфичным для Delphi и может не работать с другими языками программирования или платформами без модификаций.
В статье описывается процедура для чтения и записи текстовых файлов в формате DOS, которая позволяет корректно отображать символы с кодировкой OEM.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.