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 überspringen (https://www.delphipraxis.net/156035-wort-ueberspringen.html)

Punica 17. Nov 2010 15:49

Delphi-Version: 2010

Wort überspringen
 
Guten Tag,

ich habe vor ein kleines Tool zu programmieren was auf Befehle reagiert.

bei so einem Befehl :
!start test

kann mann ja das !start überspringen per Pos.

Aber was ist wenn der Benutzer so ein Befehl eingibt :

!start test1 test2

Das mann test1 und test2 noch auslesen kann, das wäre sehr gut.

Ist sowas möglich ?

Mfg

Klaus01 17. Nov 2010 15:53

AW: Wort überspringen
 
ja, geht.

Delphi-Quellcode:
sl := TStringList.Create;
try
  sl.delimiter := ' ';
  sl.delimitedText := '!start test1 test2';
  // sl[0] = !start
  // sl[1] = test1
  // sl[2] = test2
finally
  sl.free;
end;
Grüße
Klaus

Punica 17. Nov 2010 15:54

AW: Wort überspringen
 
Ich verstehe diesen Code nicht ganz, Entschuldigen Sie ich bin noch ein Anfänger auf diesem Gebiet :-)

!start test1 test2 war nur ein Beispiel der Benutzer wird immer andere Werte dort eingeben.

Klaus01 17. Nov 2010 15:59

AW: Wort überspringen
 
war ja auch nur ein Beispiel.

Du hast ja auch nicht geschrieben wo der Text drinnen steht.

Zitat:

Zitat von Klaus01 (Beitrag 1062199)
ja, geht.

Delphi-Quellcode:
sl := TStringList.Create;
try
  sl.delimiter := ' ';
  sl.delimitedText := Edit1.text;
  // sl[0] = auf Position 0 der Liste steht !start
  // sl[1] = auf Position 1 der Liste steht test1
  // sl[2] = auf Position 2 der Liste steht test2
finally
  sl.free;
end;
Grüße
Klaus

Mit dem Cursor TStringList markieren und F1 drücken
sollte Dir eine Erklärung bringen um was es sich da handelt.

Grüße
Klaus

Punica 17. Nov 2010 16:53

AW: Wort überspringen
 
Dankeschön bishierher, funktioniert soweit alles :-)

Und was kann ich machen wenn das kein Fehler kommt wenn sl[0], sl[1] ausgefüllt sind aber er noch sl[2] brauch, dann kommt immer ein List of out Index.

angos 17. Nov 2010 17:00

AW: Wort überspringen
 
Zitat:

Zitat von Punica (Beitrag 1062210)
Dankeschön bishierher, funktioniert soweit alles :-)

Und was kann ich machen wenn das kein Fehler kommt wenn sl[0], sl[1] ausgefüllt sind aber er noch sl[2] brauch, dann kommt immer ein List of out Index.

Hi,

na da müsstest du vorher prüfen ob die Stringlist schon so groß ist. ;)

Delphi-Quellcode:
// Wieviele Items hat eine Stringliste?
showmessage(IntToStr(sl.Count));

// Eine Stringliste komplett durchgehen
for i := 0 to sl.Count-1 do
showmessage(sl[i]);

shmia 17. Nov 2010 17:28

AW: Wort überspringen
 
Zitat:

Zitat von Punica (Beitrag 1062210)
Und was kann ich machen wenn das kein Fehler kommt wenn sl[0], sl[1] ausgefüllt sind aber er noch sl[2] brauch, dann kommt immer ein List of out Index.

Du könntest die Stringliste mit Leerstrings auffüllen, dann kannst du problemlos auf sl[2] zugreifen:
Delphi-Quellcode:
procedure FillStringList(list:TStrings; count:integer);
begin
  while list.count < count do
    list.Add('');
end;

// Beispiel für Aufruf
FillStringList(sl, 3);
ShowMessage(sl[2]); // kein List out of Index Fehler mehr


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:33 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