Einzelnen Beitrag anzeigen

Benutzerbild von o0o
o0o

Registriert seit: 20. Jul 2007
Ort: am...,da wo die sonne nicht scheint!
166 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: 32-stellige zahlen aus txt oder memo auslesen

  Alt 20. Jul 2007, 22:14
hi leutz,...ich danke euch vielmals dass ihr euch so die muehe gemacht habt und mir sooo viel text geschrieben habt
haette nicht gedacht dass ich so viele antworten bekomme^^

naja ok ich geh mal schwer davon aus dass eure codeschnipsel keine fehler beinhalten und dass das problem an mir liegt dass ich es immer noch nicht gebacken bekomme...

ich habe jetzt einfach mal den schnipsel von NamenLozer genommen und versucht einzubauen,... aber ich bekomme es einfach nicht hin._.

ich bin einfach mal hingegangen und hab ne datei namens D.txt erstellt mit ein wenig text drinne und diese als string geladen um NamenLozers schnipsel benutzen zu koennen(weiss leider nich wie ichs anders machen koennte...)

nur wenn ich das ergebniss der suche per memo ausgeben will bekomme ich einen error:

[Error] Unit1.pas(69): Incompatible types: 'String' and 'TStrings'
[Error] Unit1.pas(14): Unsatisfied forward or external declaration: 'TForm1.Button1Click'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

habt ihr vllcht ne idee wie man es richtig macht?^^

hier mein jetziger source:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Memo2: TMemo;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure LoadStringFromFile(Filename: string; var LoadString: string);//Datei im string laden
var fs:TFileStream;
begin
  fs:=TFileStream.Create(('C:\D.txt'), fmOpenRead or fmShareDenyNone);
  SetLength(LoadString, fs.Size);
  if fs.size>0 then
    fs.Read(LoadString[1], fs.Size);
  fs.Free;
end;

procedure findnumlength(input: string; output: TStrings; numlength: integer=32);//NamenLozers schnipsel
var
  i,j: integer;
  inputlen: integer;
begin
  inputlen := length(input);
  i := 1;
  while i <= inputlen do
  begin
    // die nächsten 32 Stellen prüfen
    j := 0;
    while (i+j<=inputlen) and (input[j+i] in ['0'..'9']) and (j<numlength) do
      inc(j);
    // Wenn alle 32 Stellen eine Ziffer waren, Zahl hinzufügen
    if j = numlength then
    begin
      output.Add(copy(input,i,numlength));
    end;
    // Vorspulen bis zur nächsten Zahl:
    while (not (input[i+j] in ['0'..'9'])) and (i+j<=inputlen) do
      inc(j);
    // zur nächstmöglichen Stelle Springen
    inc(i,j);
  end;
end;



procedure TForm1.Button2Click(Sender: TObject);//gewuenschte memo ausgabe
begin
findnumlength(Memo1.Lines);
end;

end.
thx fuer eure hilfe im vorraus

da o0o
  Mit Zitat antworten Zitat