Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Inhalt eines Strings herausschneiden (https://www.delphipraxis.net/22699-inhalt-eines-strings-herausschneiden.html)

Nikolas 23. Mai 2004 18:43

Re: Inhalt eines Strings herausschneiden
 
steht doch da: Ungenügende Forward- oder External-Deklaration
heisst meisten: Du hast eine funtion/procedure deklariert aber nicht implementiert. Schau mal nach ob du in der ersten Zeile der Implementation einen Schreibfehler hast. Wenn du da den Namen oder die Parameter falsch angibst, bekommst du so einen Fehler.

dws 23. Mai 2004 19:05

Re: Inhalt eines Strings herausschneiden
 
Jo läuft danke

dws 25. Mai 2004 20:27

Re: Inhalt eines Strings herausschneiden
 
So habe es jetzt alles soweit nur ich bekomme das nicht hin die einzelnen datensätze in ein aray zu speichern
habe es damit probiert


Code:
var
  test: string; // da sind die datensätze drin
  test3: Array [1..7] of string;
  count: integer;
  i: integer;
begin

listitem:= ssl_anzeige.Selected;
test:=listitem.Subitems.GetText;
count:=1;
i:=1;

while not (Tokenize(test, count, '#') = '') do
begin
  test3[i]:=(Tokenize(test, count, '#'));
  inc(count);
  i:= i+1;
end;

ssl_VNameedit1.text:= test3[1];
ssl_VNameedit2.text:= test3[2];
ssl_VNameedit3.text:= test3[3];
ssl_VNameedit4.text:= test3[4];
ssl_VNameedit5.text:= test3[5];
ssl_VNameedit6.text:= test3[6];
ssl_VNameedit7.text:= test3[7];
Nur er gibt immer wieder den kompletten datensatz aus.

IngoD7 25. Mai 2004 22:08

Re: Inhalt eines Strings herausschneiden
 
Kann fast nicht sein ...

Die Tokenize-Funktion arbeitet korrekt, und deine While-Schleife zum Füllen des Arrays eigentlich auch (abgesehen davon, dass du dir count oder i sparen könntest - aber das ist egal).

Bist du sicher, dass deine "Inhaltsprüfung" korrekt ist? Eigentlich sollte dein test3-Array korrekt gefüllt sein.

Belege doch dein String test mal händisch mit '123#456#789#abc#def' oder was weiss ich was. Also ohne den Umweg über
Delphi-Quellcode:
listitem:= ssl_anzeige.Selected;
test:=listitem.Subitems.GetText;
Das müsste - wie gesagt - funktionieren.

dws 26. Mai 2004 06:52

Re: Inhalt eines Strings herausschneiden
 
in der vauiable test steht aber genau das drin test#test2#test3.... keine ahnung warum das nicht läuft

dws 26. Mai 2004 06:55

Re: Inhalt eines Strings herausschneiden
 
Wenn ihc das so mache wie oben beschrieben mit

Code:
ShowMessage(Tokenize(DeinString, Zaehlervariable, '#'));
dann schreibt er mir meine enzelnen Datensätze in die message untereinander rein also aus test#test2#test3 wird

test
test2
test3

so zieht dann die message aus
nur eins verstehen ich in diesem quelltext nihct was macht die zählervariable.

Ich habe mal nen test gemacht wenn ihc das so mache wie oben dann setzt er mir wenn er die schleife durchgegangen ist. mein i auf 2 aber die müsste doch viel höher sein oder nicht?

Stevie 26. Mai 2004 07:32

Re: Inhalt eines Strings herausschneiden
 
Wie wär's hiermit? (Oder ist das langsamer?)
Delphi-Quellcode:
type TStringDynArray = array of string; // aus der Unit Types

function Tokenize(Text: string; Delimiter: Char; var Liste: TStringDynArray): string;
var
  StringList: TStringList;
  Count: Integer;
begin
  StringList := TStringList.Create;
  StringList.Delimiter := Delimiter;
  StringList.DelimitedText := Text;
  SetLength(Liste, StringList.Count);
  for Count := 0 to Pred(StringList.Count) do
    Liste[Count] := StringList[Count];
end;

dws 26. Mai 2004 14:33

Re: Inhalt eines Strings herausschneiden
 
und was genau soll die function machen?

Stevie 26. Mai 2004 14:43

Re: Inhalt eines Strings herausschneiden
 
Zitat:

Zitat von dws
und was genau soll die function machen?

Das hier! :wink:
Zitat:

Zitat von dws
So jetzt möchte ich das ich z.B. in einem Array einzeln test, test2, test3 gespeichert wird also immer den ihnalt zwischen den Rauten.


dws 26. Mai 2004 15:51

Re: Inhalt eines Strings herausschneiden
 
Ach wenn das jetzt blöd kommt wie rufe ich die funktion auf?


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:12 Uhr.
Seite 2 von 3     12 3      

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