Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Teilstring suchen (https://www.delphipraxis.net/112263-teilstring-suchen.html)

djpaull 5. Jun 2008 16:36

Re: Teilstring suchen
 
Hallo allerseits!

Wollte zuerst einen neuen Thread aufmachen, aber es erschien mir sinnvoll hier weiter zu machen. Habe änliches Problem.
Mein Prog soll einen text nach 0 (null bzw. mehreren nullen) durchsuchen. der Hacken dabei ist - sobald er eine null (oder mehrere direkt nacheinander) findet, soll er aufhören zu suchen und die Stelle und Anzahl der gefundenen Nullen ausgeben.

Bsp.:
Text lautet : Delphi-000123-Forum
AusgabeText1 : 8
AusgabeText2 : 3

8 steht für die Stelle, 3 für Anzahl der Nullen.
Kling banal, aber ich komme irgendwie nicht weiter.

DeddyH 5. Jun 2008 16:48

Re: Teilstring suchen
 
Nur die Anzahl der direkt aufeinander folgenden Nullen?

djpaull 5. Jun 2008 16:54

Re: Teilstring suchen
 
Und die Stelle, wo man sie zum ersten mal gefunden hat. Weitere Nullen sind unwichtig.

Edit1

Ich dachte an sowas wie:
Delphi-Quellcode:
Procedure TForm1.SucheNull;
 var Text,SuchText, Test:string;
     Suchindex: Integer;
begin
  Text:=TextFeld.Text;
  Suchtext := '0';

  begin
    // Find the position of the last 0
    Suchindex := LastDelimiter(Suchtext, Text);
    //ShowMessage('The last 0 is at '+IntToStr(Suchindex));
  end;

  if Suchindex = 0 then
  Ausgabe.Text:= '';
  if Suchindex = 1 then
  Ausgabe.Text:= '0';
  if Suchindex = 2 then
  Ausgabe.Text:= '00';
end;
ist nur so Gedankenansatz...

Die Muhkuh 5. Jun 2008 17:01

Re: Teilstring suchen
 
Mit Delphi-Referenz durchsuchenPos ist das zu ermöglichen.

djpaull 5. Jun 2008 17:06

Re: Teilstring suchen
 
Ja schon. Aber ob Pos oder LastDelimiter, wie mache ich, dass er, nach dem er die ersten nullen gefunden hat, aufhört zu suchen?

EDIT1

Wenn ich ihm sage, er soll nach dem Fund aufhören, dann findet er auch nur eine einzige Null. Wenn ich sage, er soll nach den ganzen Text nach Nullen durchsuchen, dann spuckt er ALLE Nullen aus. Ich Brauche aber nur die erste Null oder die erte Null-Folge.

Die Muhkuh 5. Jun 2008 17:08

Re: Teilstring suchen
 
Delphi-Quellcode:
i := Pos('0', str);

if i > 0 then
  MachWas;
Damit findest Du einmal die erste Null, weiter wird nicht gesucht.

Mit einer While-Schleife kannst Du dann noch solange von i + 1 weiterlaufen, bis das gefundene Zeichen <> 0 ist.

DeddyH 5. Jun 2008 17:20

Re: Teilstring suchen
 
Oder vielleicht etwas in der Art:
Delphi-Quellcode:
type TStellen = record
  First,
  Count: integer;
end;

function GetPosAndCount(const s: string; const c: Char): TStellen;
var i: integer;
begin
  Result.First := 0;
  Result.Count := 0;
  for i := 1 to Length(s) do
    if s[i] = c then
      begin
        if Result.First < 1 then
          Result.First := i;
        inc(Result.Count);
      end
    else
      if Result.First > 0 then break;
end;

djpaull 5. Jun 2008 17:29

Re: Teilstring suchen
 
Sorry, bin in Records noch nicht fit.
Zitat:

function GetPosAndCount(const s: string; const c: Char): TStellen;
Was ist in diesem Fall "const s: string" und "const c: Char". s ist mein Text und c der Suchstring, oder hab ich das falsch verstanden? :oops:

Die Muhkuh 5. Jun 2008 17:32

Re: Teilstring suchen
 
s ist da, worin gesucht werden soll, c ist ein Buchstabe, nach dem gesucht werden soll.

djpaull 5. Jun 2008 17:56

Re: Teilstring suchen
 
OK. Ich rufe die Funktion jetzt so auf:
Delphi-Quellcode:
GetPosAndCount(MeinText.text,'0');
Aber wo sehe ich die Ergebnise? Ich wollte sie z.B. im EditFeld1 haben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:23 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz