Registriert seit: 11. Feb 2008
55 Beiträge
Delphi 7 Personal
|
TextFile auslesen mit Funtion
11. Mär 2008, 04:58
Hi, hier mal die Source
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, StrUtils;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
procedure Button2Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function GetB( const s, s1, s2: String): String; //return a string between two other strings
var
iPos, iPosLeft, iPosRight: Integer;
begin
Result := ' ';
iPos := Pos(s1, s);
if iPos > 0 then
begin
iPosLeft := iPos + Length(s1);
iPos := PosEx(s2, s, Succ(iPosLeft));
if iPos > 0 then
begin
iPosRight := iPos;
Result := MidStr(s, iPosLeft, iPosRight - iPosLeft);
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var t : TextFile;
var s, Info: String;
begin
AssignFile(t, ' test.sql');
Reset(t);
while not EOF(t) do
begin
ReadLn(t, s);
if Pos(' INSERT INTO', s) > 0 then
begin
Info := GetB(s, ' (',' )');
Memo1.Lines.add(Info);
end;
end;
CloseFile(t);
end;
end.
Wie man erkennt handelt es sich um eine SQL dump file. Er soll jetzt ab der Zeile wo INSERT INTO steht alles was in () klammern ist, dazwischen ins Memo1 einfügen. Soweit so gut, tut er auch, aber leider nur zwischen den ersten Klammern. Ich schaffe keine Funktion die alle weiteren Klammern auch ausliest =(.
ps: Ab Insert Into ist alles in einer Zeile (is halt so).
|
|
Zitat
|