08.01.2007, 16:57
общий
это ответ
Здравствуйте, SHTEP!
Вот четыре функции. Правда не отлаживал, но должны работать!
Прогу если очень нужна, то пиши Ivanich.fmf@gmail.com. Может напишу - пришлю!
Приложение:
function Afteratnum(c1,c2:string;n1,n2:byte):string;begin Result:=copy(c1, n2, Length(c1)-n2); repeat p:=Pos(c2, Result); if p=0 then begin Result:=‘‘; Break; end else Result:=copy(Result, p, Length(Result)-p); until x=n2;end;function Addascii(c1:string;n1,n2:byte):string;begin Result:=c1; Result[n2]:=Char(Ord(Result[n2])+n1);end;function ATTOKEN(c1,c2:string;n:byte)string;var p:Integer;begin p:=Pos(c2[n], c1); if pos=0 then Result:=‘‘ else Result:=Copy(c1, p, Length(c1)-p);end;procedure FileWork(fileinp, fileout:String);var StrI:TStringList; StrO:TStringList; f:Boolean; i, j, p:Integer; Str1, Str2:String;begin StrO:=TStringList.Create; StrI:=TStringList.Create; StrI.LoadFromFile(fileinp); for i:=0 to StrI.Count-1 do begin p:=Pos(‘ - ‘, StrI[i]); if p=0 then Continue; Str1:=copy(StrI[i], 1, p-1); Str2:=copy(StrI[i], p+3, Length(StrI[i])-p-3); f:=False; for j:=0 to StrO.Count-1 do begin p:=Pos(Str1, StrO[j]); if p<>0 then begin StrO[j]:=StrO[j]+‘, ‘+Str2; f:=True; end; if not f then StrO.Add(Str1+‘: ‘+Str2); end; end; for i:=0 to StrO.Count-1 do StrO[i]:=StrO[i]+‘;‘; StrO.SaveToFile(fileout); StrI.Free; StrO.Free;end;