Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизЧтение данных из буфера Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.376 c