powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как получить исходную строку записанную в FileStream
3 сообщений из 3, страница 1 из 1
Как получить исходную строку записанную в FileStream
    #40045601
Ildar007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята всем привет. Записал строку все хорошо, в самом конце файла она есть в кодировке utf-16 пытаюсь получить эту же строку обратно появляются какие-то кракозябры, не могу разобраться

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
function LoadImageFromFile(const ASourceNameFile: PChar): THandle; stdcall;
var
  LStream: TMemoryStream;
  LFileStream: TFileStream;
  LNameExtension, Extension: String;
  buf: array [1..3] of Char;
  LSourseSize, LPostSize: integer;
  header : string[4];
begin
  LNameExtension := 'bmp';
  //LStream := TMemoryStream.Create;
  LFileStream := TFileStream.Create(string(ASourceNameFile), fmOpenReadWrite);
  LSourseSize := LFileStream.Size;
  LFileStream.Seek(0, soFromEnd);
  LFileStream.Write(LNameExtension[1], Length(LNameExtension) * SizeOf(Char));
  LFileStream.Free;

  LFileStream := TFileStream.Create(string(ASourceNameFile), fmOpenRead);
  LPostSize := LFileStream.Size;
  LFileStream.Seek(6, soFromBeginning);
  LFileStream.Read(buf , SizeOf(buf));

  //Result := THandle(LStream);

end;
...
Рейтинг: 0 / 0
Как получить исходную строку записанную в FileStream
    #40045608
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Ildar007
Ребята всем привет. Записал строку все хорошо, в самом конце файла она есть в кодировке utf-16 пытаюсь получить эту же строку обратно появляются какие-то кракозябры, не могу разобраться

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
function LoadImageFromFile(const ASourceNameFile: PChar): THandle; stdcall;
var
  LStream: TMemoryStream;
  LFileStream: TFileStream;
  LNameExtension, Extension: String;
  buf: array [1..3] of Char;
  LSourseSize, LPostSize: integer;
  header : string[4];
begin
  LNameExtension := 'bmp';
  //LStream := TMemoryStream.Create;
  LFileStream := TFileStream.Create(string(ASourceNameFile), fmOpenReadWrite);
  LSourseSize := LFileStream.Size;
  LFileStream.Seek(0, soFromEnd);
  LFileStream.Write(LNameExtension[1], Length(LNameExtension) * SizeOf(Char));
  LFileStream.Free;

  LFileStream := TFileStream.Create(string(ASourceNameFile), fmOpenRead);
  LPostSize := LFileStream.Size;
  LFileStream.Seek(6, soFromBeginning);
  LFileStream.Read(buf , SizeOf(buf));

  //Result := THandle(LStream);

end;



я могу ошибаться, но почему ты читаешь свою строку не так, как записываешь ?
...
Рейтинг: 0 / 0
Как получить исходную строку записанную в FileStream
    #40045625
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ildar007
Код: pascal
1.
LFileStream.Seek(6, soFromBeginning);

Заменить на
Код: pascal
1.
LFileStream.Seek(-6, soFromEnd);
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как получить исходную строку записанную в FileStream
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]