Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Zeichenkette zwischen kommas aus string in array schreiben (https://www.delphipraxis.net/33716-zeichenkette-zwischen-kommas-aus-string-array-schreiben.html)

btbe 11. Nov 2004 20:26

Re: Zeichenkette zwischen kommas aus string in array schreib
 
Also erstmal Danke an alle! Hab den Code von MrNiceGuy verwendet und der ist genau das was ich gesucht habe....
Doch es wäre ja auch zu schön....
und zwar will ich jetzt den einen wert den ich aus dem array habe umrechnen (Geschwindigkeit ist in knoten angegeben und soll auf km/h umgerechnet werden). Wenn ich nun aber mit dem wert weiterarbeiten will, bekomm ich die meldung
Zitat:

"Incompatible Types: 'String' and 'Extended'
Wie kann ich den Typ umwandeln so das ich damit rechnen kann (am besten real)??

Nikolas 11. Nov 2004 20:38

Re: Zeichenkette zwischen kommas aus string in array schreib
 
Aus einem Extended machst du per floattostr einen String. Zu deinem Undeclared Identifier:

Du musst dir erst diesen Typ erstellen:
Delphi-Quellcode:
TStringDynArray = array of string;

btbe 11. Nov 2004 21:41

Re: Zeichenkette zwischen kommas aus string in array schreib
 
Frag mich nicht warum aber es funzt nicht, wenn ich die Zeile bei types einfüge, sacht er mir '=' found but ':' expected.... wenn ich das dann ändere kommt auch nix bei rum.... ich bin echt am verzweifeln...

Steve 12. Nov 2004 06:52

Re: Zeichenkette zwischen kommas aus string in array schreib
 
Hi,

entweder stehts wohl unter var oder innerhalb einer anderen Typdeklaration {Klassendeklarationen bspw. werden mit end abgeschlossen.)
Schreib Deine Typdefinition mal direkt nach TYPE, dann muss es eigentlich gehn...

Gruß
Stephan :dance:

Stevie 12. Nov 2004 07:24

Re: Zeichenkette zwischen kommas aus string in array schreib
 
Ich weiß zwar nicht, ab welcher Version, aber in der Types.pas ist TStringDynArray schon deklariert. Einfach in die Uses damit.

Coolboarder_9 13. Nov 2004 19:29

Re: Zeichenkette zwischen kommas aus string in array schreib
 
Hallo.

Ich habe ein ähnliches Problem.

Bloß habe ich einen String, der nur aus Zahlen besteht und der durch Kommas getrennt ist. Nun möchte ich die einzelnen Strings als INtegerwerte im Array haben. Wie mache ich das? habs schon versucht aus ner StringList rauszubekommen oder irgendwie aus der zeichenkette von MrNiceGuys algo. Hat aber bis jetz nicht funktioniert. hat jemand eine Idee.
Vielleicht du alcaeus ^^ ?

alcaeus 13. Nov 2004 19:38

Re: Zeichenkette zwischen kommas aus string in array schreib
 
Hi Coolboarder_9,

versuchs mal so:
Delphi-Quellcode:
type IntAr = array of Integer;

procedure StringTeilen(var IntArray: IntAr; str: String);
var
  i: Integer;
  SL: TStringList;
begin
  SL := TStringList.Create;
  try
    SL.Delimiter := ',';
    SL.DelimitedText := str;
    SetLength(IntArray, SL.Count);
    for i := 0 to SL.Count-1 do
    begin
      if not TryStrToInt(SL.Strings[i], IntArray[i]) then
        IntArray[i] := 0;
    end;
  finally
    SL.Free;
  end;
end;
mit TryStrToInt wird versucht, einen String-Wert in einen Integer umzuwandeln. Schlägt dies fehl, dann liefert die Funktion false zurück. In dem Fall wird die Variable sicherheitshalber auf False gesetzt.

Greetz
alcaeus

[edit]Kleinen Fehler im Code verbessert[/edit]

Nikolas 13. Nov 2004 19:57

Re: Zeichenkette zwischen kommas aus string in array schreib
 
Oder auch einfach so:
Delphi-Quellcode:
var
list: tStringlist;
begin
list:= TStringlist.create;
list.commatext:=DeinString;
end;

Coolboarder_9 13. Nov 2004 20:03

Re: Zeichenkette zwischen kommas aus string in array schreib
 
Hallo. Danke schonmal.

Hab nur leider bei der Stelle
SetLength(IntAr, SL.Count);
einen Fehler
incomptaible types wird angezeigt.

Was stimmt da nciht.


UNd was erwartet die Prozedur eigentlich für Parameter beim aufruf?

Danke

alcaeus 13. Nov 2004 20:05

Re: Zeichenkette zwischen kommas aus string in array schreib
 
Hi Coolboarder_9,

hier ein Beispielaufruf:

Delphi-Quellcode:
var
  Zahlen: IntAr; //nicht array of Integer
begin
  StringTeilen(Zahlen, RichEdit1.Text);
  StringTeilen(Zahlen, Memo1.Text);
  StringTeilen(Zahlen, Edit1.Text);
end;
Greetz
alcaeus


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

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