Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Чтение данных из буфера


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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо