![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чтение данных из буфера
Pavel © (2010-03-02 17:49:00)Читаю данные из текстового файла в буфер. И затем хочу вывести эти данные на экран.
var f1: integer;
st1: string;
Buffer :array[0..1024] of char;
begin
f1:=FileOpen('D:\OSM\moscow11.txt',fmOpenRead);
FileSeek(f1,100,1);
FileRead(f1,Buffer,1024);
st1:=Buffer;
ShowMessage(st1);
end;
В результате выводятся иероглифы.
Что мне здесь нужно исправить, чтобы текст отображался корректно.
Заранее благодарен за ответы.
Pavel (2010-03-03 11:37:00) [1]Огромное спасибо! Заработало.
Игорь Шевченко (2010-03-02 23:56:00) [2]var
st1: AnsiString;
Buffer :array[0..1024] of Ansichar;
Pavel (2010-03-02 23:47:00) [3]
> умные люди пишут версию Delphi
Delphi 2010
Игорь Шевченко (2010-03-02 23:13:00) [4]умные люди пишут версию Delphi
Pavel (2010-03-02 23:10:00) [5]
> Для начала FileRead(f1,Buffer[0],1024);
FileRead испльзую чтобы прочитать сразу несколько байт. Так как файл большой, то если читать по одному байту с помощью ReadLn - получается очень долго, а если загружать сразу весь файл с помощью LoadFromFile, то данные занимают большое объем в памяти.
Мне нужно читать файл по 1024 байта и их обрабатывать. Я пока не знаю как это лучше реализовать.
Leonid Troyanovsky (2010-03-02 19:13:00) [6]
> Германн © (02.03.10 19:07) [7]
> Buffer == Buffer[0]
Ну, да.
Паранойя, наверное :)
Sorry.
--
Regards, LVT.
Германн (2010-03-02 19:07:00) [7]
> Leonid Troyanovsky © (02.03.10 18:58) [6]
>
>
deja vu
Так ведь для статического массива
> Buffer :array[0..1024] of char;
Buffer == Buffer[0]
Leonid Troyanovsky (2010-03-02 18:58:00) [8]
> Германн © (02.03.10 18:55) [4]
> Зачем?
function FileRead(Handle: Integer; var Buffer; Count: Integer): Integer;
--
Regards, LVT.
Плохиш (2010-03-02 18:56:00) [9]
> Leonid Troyanovsky © (02.03.10 18:53) [3]
Это его проблемы. А вопросов он не задавал, так вывалил то, что наболело ;-)
Германн (2010-03-02 18:55:00) [10]
> Для начала FileRead(f1,Buffer[0],1024);
>
Зачем?
Leonid Troyanovsky (2010-03-02 18:53:00) [11]
> Плохиш © (02.03.10 18:43) [2]
> Хотя вы и не спрашивали...
Дык, чего преобразовывать, мусор там.
--
Regards, LVT.
Плохиш (2010-03-02 18:43:00) [12]
> В результате выводятся иероглифы.
> Что мне здесь нужно исправить, чтобы текст отображался корректно.
>
Надо преобразовать юникод в аски.
Хотя вы и не спрашивали...
Leonid Troyanovsky (2010-03-02 18:29:00) [13]
> Pavel (02.03.10 17:49)
> Что мне здесь нужно исправить, чтобы текст отображался корректно.
Для начала FileRead(f1,Buffer[0],1024);
А закрывать файл будет, видимо, Пушкин.
--
Regards, LVT.