Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi für alle Wörter eines strings eine variable erstellen (https://www.delphipraxis.net/8055-fuer-alle-woerter-eines-strings-eine-variable-erstellen.html)

Pseudemys Nelsoni 27. Aug 2003 17:48


für alle Wörter eines strings eine variable erstellen
 
hallo,

wie kann ich das machen das aus "dies ist ein string" z.b var1 var2 var3 var4 wird? es können auch mehr oder weniger wörter sein, es geht darum für jedes wort eine zu erzeugen und sie immer 1zahl höher wird...also 12345..N usw

wie kann ichdas anstellen?

1PM 27. Aug 2003 17:49

Re: für alle Wörter eines strings eine variable erstellen
 
Hallo!

Versuchs mal mit einem Array!

Gruß
1PM

Pseudemys Nelsoni 27. Aug 2003 17:55

Re: für alle Wörter eines strings eine variable erstellen
 
wie denn, gibts nen beispiel? wüsst ich was arrays sind bzw was sie machen würd ich ja wissen das es mit ihnen geht ;)

Illuminator-23-5 27. Aug 2003 17:59

Re: für alle Wörter eines strings eine variable erstellen
 
z.B.:
Delphi-Quellcode:
var
  woerter: array of string;
...
setLength(woerter, 3); //setzt die länge
for i := 0 to length(woerter) - 1 do //length gibt die länge zurück
  woerter[i] := '';

Pseudemys Nelsoni 27. Aug 2003 18:08

Re: für alle Wörter eines strings eine variable erstellen
 
danke, aber das ist zu hoch für mich :\ was tut der code?

Illuminator-23-5 27. Aug 2003 18:12

Re: für alle Wörter eines strings eine variable erstellen
 
ein array ist eine liste von variablen.
array of integer ist eine liste von integer-variablen
dieser array ist dynamisch, denn man kann seine länge verändern (mit setlength)
{array[0..5] of integer wäre ein statischer array}

auf das 3. Element der liste kann man so zugreifen:
variable[2]
deswegen 2, weil der array bei 0 anfängt! (0, 1, 2)

mit SetLength(variable, länge) setzt man die länge des arrays.
mit length(variable) erhälst du die länge

Pseudemys Nelsoni 27. Aug 2003 18:15

Re: für alle Wörter eines strings eine variable erstellen
 
danke für die erklärung ;)

hm, also werden wörter die durch eine leertaste getrennt sind als 1,2,3 etc angesehn? oder hat das mit ner leertaste nichts zu tun?

Sanchez 27. Aug 2003 18:23

Re: für alle Wörter eines strings eine variable erstellen
 
hallo,

das kommt darauf an, wo du deine Wörter trennst.

Such mal hier im Forum nach IniParseString. Ich denke, dass dürfte dir helfen.

grüße, daniel

Luckie 27. Aug 2003 21:53

Re: für alle Wörter eines strings eine variable erstellen
 
ExplodeExplode

Und bei mir in der Ablage/demos gibt es eine Demo-Anwendung dazu, heißt genauso.

axelf98 27. Aug 2003 22:25

Re: für alle Wörter eines strings eine variable erstellen
 
Ich würde das so machen:

Delphi-Quellcode:
Text : string //ist der Ausgangstext
Liste : TstringList // Liste mit Wörtern

// ---- Hilfsfunktion.....

procedure GetWords(TheString, Teiler: String; var Strings: TStringList);

//........ Die Funktion Tut genau das, was hier erwünscht ist!

procedure Tform1.GetWords(TheString, Teiler: String; var Strings: TStringList);
begin
  try
    Strings.Clear;
    while Pos(Separator, TheString)>0 do
    begin
      Strings.Add(Copy(TheString, 1, Pos(Separator, TheString)-1));
      TheString:=Copy(TheString, Pos(Separator, TheString)+Length(Separator),
      Length(TheString));
    end;
    Strings.Add(TheString);
    if ((Strings.Count = 1 ) AND (strings[0]='')) then strings.Clear;
  except
  end;
end;

//................... Weiter unten:


procedure TForm1.ButtonClick(Sender: TObject);
begin

Liste := TStringList.create; // Aufrufen
Getwords(Text,' ',Liste);
 
 // Text -> Ausgangstext, ' ' -> Leerzeichen als Trennung, Liste->Die Liste
// Jetzt kann man mit Liste.Add Elemenete hinzufügen
//                     Liste[i] das i te Wort auslesen
//                     Liste.count die anzahl der wörter bekommen

end;

Luckie 28. Aug 2003 00:38

Re: für alle Wörter eines strings eine variable erstellen
 
Explode macht genau das, was gewünscht wird, es schreibt die einzelnen Wörter in ein String-Array.

@axelf98: Warum ist deine Prozedur GetWords eine Methode von TForm1? Es wird doch niergens auf ein Objekt der Form zugegriffen.

axelf98 28. Aug 2003 10:51

Re: für alle Wörter eines strings eine variable erstellen
 
Na irgendwo muss sie ja stehen, damit delphi sie findet!

Luckie 28. Aug 2003 11:41

Re: für alle Wörter eines strings eine variable erstellen
 
Kuck dir noch mal bitte die Grundlagen an:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function Addiere(a, b: Integer): Integer;
begin
  result := a + b;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(IntToStr(Addiere(5,6)));
end;
Wenn du sie niergens mit forward deklarierst, muß sie nur vor dem ersten Aufruf stehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:00 Uhr.

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