Форум: "Прочее";
Текущий архив: 2007.01.21;
Скачать: [xml.tar.bz2];
ВнизВыделение строк Найти похожие ветки
← →
kaZaNoVa © (2006-12-27 19:27) [0]есть задача, - имеется строка вида:
12:42 Отданы предметы: Metals[78] в здании "JKL[45/121]"
(лог-файл)
записей много, разновидностей предметов всего 8, как выделять в массив количество предметов?
пока реализовал так:-----
function StrStPosZ(P, S : PAnsiChar; var Pos : Cardinal) : boolean;
{-Sets Pos to position of string S within string P returns True if found}
var
Temp : PChar;
begin
Result := False;
Temp := StrPos(P, S);
if Temp <> nil then begin
Pos := Temp - P;
Result := True;
end;
end;
----
If StrStPosZ(Pchar(Memo1.Lines.Strings[i]),"Metals[",k) then
Begin
StrStPosZ(Pchar(Memo1.Lines.Strings[i]),"]",p) ;
Inc(info[1],strToInt(copy(Memo1.Lines.Strings[i],k+8,p-k-7)));
End;
----
(имхо коряво но работает)
есть какие-либо короткие и красивые решения?
← →
oldman © (2006-12-27 19:36) [1]работает?
проверил?
точно работает?
НИЧЕГО РУКАМИ НЕ ТРОГАЙ!!!!!!!!!!
← →
kaZaNoVa © (2006-12-27 19:39) [2]oldman © (27.12.06 19:36) [1]
работает?
проверил?
точно работает?
да ;)
коэффиценты смещения (8,7) подбирал наугад))
← →
wicked © (2006-12-27 19:41) [3]уже два раза за пару дней проскакивало тут - это работа для регекспов...
← →
kaZaNoVa © (2006-12-27 19:43) [4]wicked © (27.12.06 19:41) [3]
догадываюсь:)
но в них не разбираюсь)
если кто-то подскажет, КАК мона сделать - буду благодарен:) (изучать по ним документацию времени нет)
← →
umbra © (2006-12-27 19:47) [5]
var
Curstr: string;
start, myend: integer;
{..................................}
curstr := Memo1.Lines.Strings[i];
start := PosEx("[", curstr) + 1;
myend := PosEx("]", curstr, start);
if end > start then
Inc(info[1], strtoint(MidStr(curstr, start, myend - start)));
← →
wicked © (2006-12-27 19:49) [6]для такого случая - что то вроде
\:\s*[a-zA-Z]+\[([0-9]+)\]
результат - в matches[1], ежели используется TRegExpr
хотя, опять таки, зависит от вида строчек...
← →
kaZaNoVa © (2006-12-27 19:51) [7]umbra © (27.12.06 19:47) [5]
wicked © (27.12.06 19:49) [6]
спасиб) нечто новое ... попробую прикрутить)
а модули какие-либо надо подключать?)
← →
wicked © (2006-12-27 19:52) [8]для регекспов - конечно...
www.regexpstudio.com
← →
oldman © (2006-12-27 19:55) [9]Ну, если у тебя стандартный лог-файл:
"мусор материал[] мусор здание[] мусор материал[] мусор здание[]..."
что мешает прямой обработке файла как строки как массива символов?
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.01.21;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.043 c