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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2013, 19:40   #1
code358
Новичок
Джуниор
 
Регистрация: 01.12.2013
Сообщений: 4
По умолчанию Чтение бинарного файла

Есть файл, читаю его такой функцией:

Код:
function ReadFile(aFileName: String) : string;
var f:TFileStream;
    dst: TStringStream;
  fReaded : string;
begin
Result := "";
if FileExists(aFileName) then begin
  F := TFileStream.Create(aFileName, fmOpenRead);
  dst := TStringStream.Create;
  try
    dst.CopyFrom(f, f.Size);
    Result := dst.DataString;
  finally
    f.Free;
    dst.Free;
  end;
end;
end;
Соль в том, что в этом файле есть немного текста в JSON'e и именного его мне надо получить. Есть какие-то идеи?
Пример файла загрузил на rghost.ru/50572179 (*.wotreplay)
code358 вне форума Ответить с цитированием
Старый 01.12.2013, 20:03   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

И что же это за текст?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.12.2013, 20:08   #3
code358
Новичок
Джуниор
 
Регистрация: 01.12.2013
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
И что же это за текст?
Код:
{"clientVersionFromXml": "World\u00a0of\u00a0Tanks v.0.8.9 #553", "clientVersionFromExe": "0, 8, 9, 0", "mapDisplayName":
"\u0421\u0432\u044f\u0449\u0435\u043d\u043d\u0430\u044f \u0434\u043e\u043b\u0438\u043d\u0430", "gameplayID": "ctf", "playerID": 6275943, "vehicles":
ну и до конца..

Последний раз редактировалось code358; 01.12.2013 в 20:11.
code358 вне форума Ответить с цитированием
Старый 01.12.2013, 20:17   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

И он всегда в одном и том-же месте?
Или по разному?
И начинается он одинаково всегда?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.12.2013, 20:23   #5
code358
Новичок
Джуниор
 
Регистрация: 01.12.2013
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
И он всегда в одном и том-же месте?
Или по разному?
И начинается он одинаково всегда?
начинается всегда в стиле JSON'a с "{".
место одинаковое
code358 вне форума Ответить с цитированием
Старый 01.12.2013, 20:38   #6
ДралсяСошибками
Форумчанин
 
Аватар для ДралсяСошибками
 
Регистрация: 31.05.2011
Сообщений: 301
По умолчанию

Обратите внимание на 9,10,11, и 12 байт = 68150000Hex = 5480Dec это похоже размер данных JSON, но не весь, он там видимо из двух частей, у второго тоже должен быть размер.
ДралсяСошибками вне форума Ответить с цитированием
Старый 01.12.2013, 21:41   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
место одинаковое
Тогда
Код:
  try
 f.position:=Номер байта с которого начинается Джисон
    dst.CopyFrom(f, f.Size-f.position);
    Result := dst.DataString;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.12.2013, 21:49   #8
code358
Новичок
Джуниор
 
Регистрация: 01.12.2013
Сообщений: 4
По умолчанию

Stilet, спасибо!
code358 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение из бинарного файла в С++ ArmanPrestige Общие вопросы C/C++ 10 15.07.2012 21:36
Чтение из бинарного файла lioc C# (си шарп) 10 20.02.2012 21:12
чтение бинарного файла Snake22 Общие вопросы Delphi 1 23.01.2012 07:44
чтение из бинарного файла Kukurudza Общие вопросы C/C++ 6 08.09.2011 19:09
Чтение из бинарного файла. kir_rik Помощь студентам 2 04.06.2010 00:31