Главная страница
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.051 c
15-1266417633
Kerk
2010-02-17 17:40
2010.08.27
Сурков, замруководителя администрации президента, о модернизации


2-1268475991
Fr
2010-03-13 13:26
2010.08.27
Сохранение TChart


2-1270652923
Vincero
2010-04-07 19:08
2010.08.27
Отловить состояние клавиши [Shift] при нажатии на пункт PopupMenu


15-1265554963
TUser
2010-02-07 18:02
2010.08.27
Соцопросик курильщиков


15-1265044912
xayam
2010-02-01 20:21
2010.08.27
Тест на сообразительность