Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wort aus String extrahieren (https://www.delphipraxis.net/80912-wort-aus-string-extrahieren.html)

rawsoul 17. Nov 2006 12:43


Wort aus String extrahieren
 
Mahlzeit zusammen!

Ich möchte für mein nächstes Großprojekt (relativ gesehen - ich bin neu in Pascal) einzelne Wörter aus einem String extrahieren. Im Moment sieht der Code so aus:

Delphi-Quellcode:
Function WordFromString(Str:String;WordPos:Integer):String;
Var Character,FinalWord:String;i,j:Integer;
Begin
  j:=0;
  i:=0;
  repeat begin
           Finalword:='';
           repeat
             begin
               Character:=Str[1+i];
               i:=i+1;
               Finalword:=Finalword+Character
             end
           until
             (Character='') or (Character=' ');
           j:=j+1;
           end until
               j=WordPos;

  result:=Finalword

End;
Die Funktion soll dann mit WordFromString('eins zwei drei vier',3) das dritte Wort auslesen und als result festlegen. Soweit funktioniert es auch. Aber:
Sobald ich das letzte Wort auslesen lassen möchte, schmiert mir der Debugger ab :[

Es wäre genial, wenn mir da jemand helfen könnte oder einen nützlichen Tipp parat hat ;)

LG

ste_ett 17. Nov 2006 12:53

Re: Wort aus String extrahieren
 
Definiere
Zitat:

schmiert mir der Debugger ab :[
.
Damit kann man so nicht viel anfangen. :)

rawsoul 17. Nov 2006 12:59

Re: Wort aus String extrahieren
 
Hmm, nun gut...
Mir ist grad auf dem Klo eine Idee gekommen *g*

Das Problem lag daran, dass er den String anscheinen weiter auslesen möchte, wenn dieser bereits zu Ende ist. Sprich, das
Delphi-Quellcode:
until
             (Character='') or (Character=' ');
scheint nicht seinen Zweck erfüllt zu haben.

Habe das ganze nun so gefaked, dass dem String ein weiteres Leerzeichen (Im Quelltext) hinten angefügt wird. So funktioniert es tadellos. Aber das Ganze geht doch bestimmt sehr viel eleganter, oder?

@ste_ett: Was genau brauchst Du? Das Error-Fenster oder den Log? Ich werde aus beiden nicht sonderlich schlau, daher kann ich nicht feststellen, welcher davon nun der hilfreichere ist ;)

BenjaminH 17. Nov 2006 13:26

Re: Wort aus String extrahieren
 
ExplodeExplode kann das, was du willst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:50 Uhr.

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