powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Запись строки в лог через FileStream - что то с кодировкой
7 сообщений из 7, страница 1 из 1
Запись строки в лог через FileStream - что то с кодировкой
    #39527431
svnvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишу строку в стрим. В файле получаются какие-то квадратики вместо нормальных читаемых строк.
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
procedure TfmMain.WriteLog(s: string);
var
  F: TFileStream;
begin
  s := s + #13#10;
  // Создать файл, если нет
  if not FileExists(LogFileName) then
  try
    F := TFileStream.Create(LogFileName, fmCreate);
  finally
     F.Free;
  end;

  F := TFileStream.Create(LogFileName, fmOpenReadWrite or fmShareDenyWrite);
  try
     F.Seek(0, soFromEnd);
     F.Write(s[1], Length(s));
  finally
     F.Free;
  end;
end;


2 8 . 0 9 . 2 0 1 7 8 : 4 2 : 2 0 L 2 8 . 0 9 . 2 0 1 7 8 : 4 2 : 4 1 C l i e n t 2 8 . 0 9 . 2 0 1 7 8 : 4 3 : 1 2 = = = = K?>;=5=85 =02 8 . 0 9 . 2 0 1 7 8 : 4 3 : 1 2 0;:8=0 .;8O .@L52=0: S t r i n 2 8 . 0 9 . 2 0 1 7 8 : 4 3 : 1 2 0;:8=02 8 . 0 9 . 2 0 1 7 8 : 4 3 : 1 2 0;:8=2 8 . 0 9 . 2 0 1 7 8 : 4 3 : 1 2 0;:2 8 . 0 9 . 2 0 1 7 8 : 4 3 : 1 5 0;:8=0 .;8O .@
...
Рейтинг: 0 / 0
Запись строки в лог через FileStream - что то с кодировкой
    #39527433
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svnvladВ файле получаются какие-то квадратики вместо нормальных читаемых строк.
Не нравится юникод?
...
Рейтинг: 0 / 0
Запись строки в лог через FileStream - что то с кодировкой
    #39527434
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svnvlad
Код: pascal
1.
F.Write(s[1], Length(s));


Это кстати, пишет не всю строку, а только часть (половину). Потому что длина строки это не количество байт, которые она занимает.
...
Рейтинг: 0 / 0
Запись строки в лог через FileStream - что то с кодировкой
    #39527446
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда пишут строки в файл, надо четко понимать в какой кодировке вам нужна строка? ansi (1251, 1252...), oem, unicode, utf, arab и т.д.
В файл пишутся не буквы, а байты которые представляют эти буквы. В разных кодировках байты разные.
...
Рейтинг: 0 / 0
Запись строки в лог через FileStream - что то с кодировкой
    #39527458
svnvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-Cite, мне нужно в той же кодировке, в какой пишет, когда через F: TextFile; WriteLn(F);
...
Рейтинг: 0 / 0
Запись строки в лог через FileStream - что то с кодировкой
    #39527467
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svnvlad
Код: pascal
1.
procedure TfmMain.WriteLog(s: AnsiString);


Либо пиши через TStringList.
...
Рейтинг: 0 / 0
Запись строки в лог через FileStream - что то с кодировкой
    #39527551
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Запись строки в лог через FileStream - что то с кодировкой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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