Einzelnen Beitrag anzeigen

gene

Registriert seit: 11. Feb 2008
55 Beiträge
 
Delphi 7 Personal
 
#1

TextFile auslesen mit Funtion

  Alt 11. Mär 2008, 03: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).
  Mit Zitat antworten Zitat