Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2015, 07:46   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
fileXml:File of byte;
b:Byte;
ws:WideString;
Замени на
Код:
  fileXml:File of char;
  b:Byte;
  ws:AnsiString;
А вообще от file of избавь себя в пользу TStringList или если XML не построчный в пользу от TFileStream
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.03.2015, 07:49   #12
Alexandr17
Форумчанин
 
Регистрация: 10.12.2013
Сообщений: 227
По умолчанию

Кстати я сказал что Delphi 2009
Собственно пробувал через TFileStream
Код:
ws:='';
    Stream := TFileStream.Create(FileName, fmOpenRead);
    try
      Size := Stream.Size;
      SetLength(buffer, Size);
      Stream.Read(Buffer[1], Size);
      ws:=WideString(Buffer);
    finally
      Stream.Free;
    end;
В итоге загружаются толи китайские толи японские символы вместо текста
Alexandr17 вне форума Ответить с цитированием
Старый 11.03.2015, 07:50   #13
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

проанализировал. с кодировкой порядок
Изображения
Тип файла: jpg 2.jpg (56.2 Кб, 121 просмотров)
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 11.03.2015, 07:56   #14
Alexandr17
Форумчанин
 
Регистрация: 10.12.2013
Сообщений: 227
По умолчанию

Я итак его сам проанализировал. Вообще в delphi 7 чтение нормально это в 2009 проблемы возникаю.т Да и может кто пример нормальный даст по TFileStream так как для чтения и парсинга asm только tfilestream и сгодится.
Alexandr17 вне форума Ответить с цитированием
Старый 11.03.2015, 08:06   #15
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
так как для чтения и парсинга asm только tfilestream и сгодится.
это почему же?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 11.03.2015, 08:10   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ws:=WideString(Buffer);
Мдя... Ладно, не буду отвлекать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.03.2015, 09:48   #17
StriderX
Форумчанин
 
Регистрация: 21.04.2014
Сообщений: 115
По умолчанию

Цитата:
Сообщение от Alexandr17 Посмотреть сообщение
Я итак его сам проанализировал. Вообще в delphi 7 чтение нормально это в 2009 проблемы возникаю.т Да и может кто пример нормальный даст по TFileStream так как для чтения и парсинга asm только tfilestream и сгодится.
Надо подружиться с энкодерами. Байты в символы теперь по очень сложным алгоритмам могут превращаться. Энкодер как концепция теперь есть всегда, поэтому надо себе задавать вопрос - если я ничего не указываю, то кто мне его дал и какой именно =-)
Если надо просто перегнать файл в строку, то можно так:
Код:
        AutoDetectEncoding(FileName);
        FS := TStringStream.Create('', Encoding);
        FS.LoadFromFile(FileName);
        str := FS.DataString;
        FS.Free();
Реализация AutoDetectEncoding произвольная (можно прочитать инварианту-заголовок, можно сунуть дифолт и т.п.).
StriderX вне форума Ответить с цитированием
Старый 11.03.2015, 11:18   #18
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Alexandr17, если у Вас Delphi поддерживает TEncoding,
то почему этим не воспользоваться?!

ну, например, примерно так:

Код:
var TS : TStringList;
begin
   TS := TStringList.Create;
   TS.LoadFromFile(FileName, TEncoding.GetEncoding(1251));
       //.... все строчки файла в  TS.Strings[]>
   TS.Free;
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.03.2015, 14:10   #19
Alexandr17
Форумчанин
 
Регистрация: 10.12.2013
Сообщений: 227
По умолчанию

Использования TStringList для копирования 10 строчек. Не думаю что это эфективно. Хотя видно другого способа нету. Вообще хотелось бы читать через TFileStream

Цитата:
Сообщение от min@y™ Посмотреть сообщение
это почему же?
Для файла асемблера с расширением ASM
Потомучто когда я использовал побайтное чтение через read на delphi 7 у меня именно на этом файле не коректно работал copy и delete.
Дело в том что именно в этом файле вместо #13#10 на некоторых строках было #13#10#13
Возможно баг при чтении. Вот и подумываю по чтению через tfilestream.
Помогите делать чтение через tfilestream. Всеже он больше подходит для скриптинга и парсинга.
Alexandr17 вне форума Ответить с цитированием
Старый 11.03.2015, 14:29   #20
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
вместо #13#10 на некоторых строках было #13#10#13
не было
Цитата:
Использования TStringList для копирования 10 строчек. Не думаю что это эфективно.
Эффективней чем с tfilestream это уж точно. Не нравится построчная обработка (интересно почему?) работай со свойством Text, в котором все, в том числе и любимые управляющие символы
Цитата:
Всеже он больше подходит для скриптинга и парсинга.
хи-хи
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi 2009 проблемы!!! sanekch1 Помощь студентам 3 07.08.2010 15:53
проблемы с Char и String в 2009 Delphi Kurai Помощь студентам 4 12.04.2010 14:56
Проблемы с чтением данных в Delphi cyberandom Помощь студентам 11 05.02.2010 19:52
Проблемы с выполнением ХП в Delphi 2009 MargoNik БД в Delphi 10 01.06.2009 08:53
Проблемы с framework-ом ну и с Delphi 2009 Altera Свободное общение 1 18.05.2009 22:07