Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Чтение данных из буфера   Найти похожие ветки 

 
Pavel   (2010-03-02 17:49) [0]

Читаю данные из текстового файла в буфер. И затем хочу вывести эти данные на экран.


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;


В результате выводятся иероглифы.
Что мне здесь нужно исправить, чтобы текст отображался корректно.
Заранее благодарен за ответы.


 
Leonid Troyanovsky ©   (2010-03-02 18:29) [1]


> Pavel   (02.03.10 17:49)  

> Что мне здесь нужно исправить, чтобы текст отображался корректно.

Для начала FileRead(f1,Buffer[0],1024);

А закрывать файл будет, видимо, Пушкин.

--
Regards, LVT.


 
Плохиш ©   (2010-03-02 18:43) [2]


> В результате выводятся иероглифы.
> Что мне здесь нужно исправить, чтобы текст отображался корректно.
>

Надо преобразовать юникод в аски.
Хотя вы и не спрашивали...


 
Leonid Troyanovsky ©   (2010-03-02 18:53) [3]


> Плохиш ©   (02.03.10 18:43) [2]

> Хотя вы и не спрашивали...

Дык, чего преобразовывать, мусор там.

--
Regards, LVT.


 
Германн ©   (2010-03-02 18:55) [4]


> Для начала FileRead(f1,Buffer[0],1024);
>

Зачем?


 
Плохиш ©   (2010-03-02 18:56) [5]


> Leonid Troyanovsky ©   (02.03.10 18:53) [3]

Это его проблемы. А вопросов он не задавал, так вывалил то, что наболело ;-)


 
Leonid Troyanovsky ©   (2010-03-02 18:58) [6]


> Германн ©   (02.03.10 18:55) [4]

> Зачем?

function FileRead(Handle: Integer; var Buffer; Count: Integer): Integer;

--
Regards, LVT.


 
Германн ©   (2010-03-02 19:07) [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 19:13) [8]


> Германн ©   (02.03.10 19:07) [7]

> Buffer == Buffer[0]

Ну, да.
Паранойя, наверное :)
Sorry.

--
Regards, LVT.


 
Pavel   (2010-03-02 23:10) [9]


> Для начала FileRead(f1,Buffer[0],1024);


FileRead испльзую чтобы прочитать сразу несколько байт. Так как файл большой, то если читать по  одному байту с помощью ReadLn - получается очень долго, а если загружать сразу весь файл с помощью LoadFromFile, то данные занимают большое объем в памяти.
Мне нужно читать файл по 1024 байта и их обрабатывать. Я пока не знаю как это лучше реализовать.


 
Игорь Шевченко ©   (2010-03-02 23:13) [10]

умные люди пишут версию Delphi


 
Pavel   (2010-03-02 23:47) [11]


> умные люди пишут версию Delphi

Delphi 2010


 
Игорь Шевченко ©   (2010-03-02 23:56) [12]

var
   st1: AnsiString;
   Buffer :array[0..1024] of Ansichar;


 
Pavel   (2010-03-03 11:37) [13]

Огромное спасибо! Заработало.



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.053 c
2-1273504909
Тим
2010-05-10 19:21
2010.08.27
сортировка в stringlist


2-1267252746
shamans
2010-02-27 09:39
2010.08.27
Обработка скроллирования


10-1166561371
TStas
2006-12-19 23:49
2010.08.27
Как получить число страниц в вордовском файле?


15-1264942022
Константинов
2010-01-31 15:47
2010.08.27
Безопасность ПК


4-1231600539
Nucer
2009-01-10 18:15
2010.08.27
LSP (Layered Service Provider)