![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 07.10.2011
Сообщений: 4
|
![]()
Есть программа (игра) которая пишет логи с достаточно большой скоростью. Файл открыт ей постоянно (поток). Как можно из открытого файла брать последнюю строку? Надо в последней добавленной строке найти соответствие, но это уже второстепенно. Умеет ли дельфи открывать файлы которые уже открыты?
Вот пример нашел, повесил на таймер, но при запуске игры пишет что файл занят ( Код:
___________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Serge_Bliznykov; 07.10.2011 в 09:47. |
![]() |
![]() |
![]() |
#2 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
![]()
Ответ FS := TFileStream.Create(fromfile,fmOpenR ead or fmShareDenyWrite);
95% сбоев и ошибок приложений, находится в полу метрах от монитора
![]() |
![]() |
![]() |
![]() |
#3 | |
Новичок
Джуниор
Регистрация: 07.10.2011
Сообщений: 4
|
![]() Цитата:
(1318006328)[Fri Oct 07 20:52:08 2011] \aPC -1 Роуэл:Роуэл\/a говорит Level_90 (9): "в х2 башню группой, 1 место - менек" (1318006346)[Fri Oct 07 20:52:26 2011] \aPC 693204 Амиэль:Амиэль\/a говорит: "Приветствую, !" (1318006348)[Fri Oct 07 20:52:28 2011] \aPC -1 Зелтрон:Зелтрон\/a говорит Аукцион (1): "то есть не руки мыл?" (1318006387)[Fri Oct 07 20:53:07 2011] \aPC -1 Обрыгай:Обрыгай\/a говорит Аукцион (1): "мыло было тока хозяйственное?" (1318006398)[Fri Oct 07 20:53:18 2011] \aPC -1 Роуэл:Роуэл\/a говорит Level_90 (9): "в х2 башню группой, 1 место - менек" (1318006430)[Fri Oct 07 20:53:50 2011] \aPC -1 Рагг:Рагг\/a говорит Аукцион (1): "Слушай Димкатээр , ты кому угодно мозг вынесешь(" (1318006445)[Fri Oct 07 20:54:05 2011] \aPC -1 Зелтрон:Зелтрон\/a говорит Аукцион (1): "у тебя его нет(" (1318006460)[Fri Oct 07 20:54:20 2011] \aPC -1 Рагг:Рагг\/a говорит Аукцион (1): "Кто сказал ?" ![]() |
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Так выясните какая кодировка и раскодируйте. Визуально на UTF-8 похоже, могу и ошибиться
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#5 |
Новичок
Джуниор
Регистрация: 07.10.2011
Сообщений: 4
|
![]() |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Ну тогда UTF8Decode, Utf8ToAnsi
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#7 |
Новичок
Джуниор
Регистрация: 07.10.2011
Сообщений: 4
|
![]()
И остался один вопросик. Как сделать так что бы эта функция не дублировала сообщения. Я так понимаю алгоритм такой.
Повесить на таймер эту функцию, выполнить ее первый раз. Записать FS.Size и на втором выполнении по таймеру сравнить изменилось ли это значение. если не изменилось то ничего не делать, если изменилось то выполнить функцию еще раз. Только что то реализовать не могу это условие ((( Вот сейчас как все function GetLastRow(fromfile: string): string; var LenToRead : WORD; FS : TFileStream; SL : TStringList; begin result:=''; FS := TFileStream.Create(fromfile,fmOpenR ead or fmShareDenyNone); try if FS.Size = 0 then Exit ; LenToRead := FS.Size ; if LenToRead > 100 then LenToRead := 100; FS.Seek(FS.Size-300,soBeginning); SL:=TStringList.Create; SL.LoadFromStream(FS); if SL.Count>0 then result:=SL[SL.count-1]; Form1.Memo1.Lines.Add(UTF8Decode(re sult)); finally FS.Free; SL.Free; end; end; procedure TForm1.Timer1Timer(Sender: TObject); begin GetLastRow('d:\Games\Sony Online Entertainment\Installed Games\EverQuest II\logs\Barren Sky\eq2log_Лясы.txt'); end; |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обработка логов спутникового ТВ сигнала | getikalex | Microsoft Office Excel | 4 | 09.01.2011 17:53 |
Компонент для вывода логов | ProESM | Общие вопросы Delphi | 5 | 27.09.2010 22:05 |
Как добраться до логов Винды? | puzik_off | Win Api | 7 | 24.02.2010 09:47 |
Обработка интернет логов | iskurt | Общие вопросы Delphi | 8 | 06.01.2010 00:06 |
обработка логов в Postfix | MarinaOlegovna | Помощь студентам | 1 | 30.07.2009 15:36 |