Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zeichenkette zerlegen... (https://www.delphipraxis.net/160065-zeichenkette-zerlegen.html)

DeddyH 26. Apr 2011 13:06

AW: Zeichenkette zerlegen...
 
In dem Screenshot sehe ich etwas von Klassenmethoden, also dürfte die Delphi 7-Angabe auf Torry wohl auch falsch sein. Zumindest den Variants-Fehler bekäme man wohl weg, wenn man im Code den Unit-Namen austauscht, sofern das mit dem Alias tatsächlich nicht funktioniert.

delphinia 26. Apr 2011 13:17

AW: Zeichenkette zerlegen...
 
habe VARIANTS gegen SYSTEM getauscht - geht (!?)

Aber nun ist wieder etwas was nicht vorhanden "VarToWideStr" das habe ich nicht einmal hier im Forum gefunden!

himitsu 26. Apr 2011 13:26

AW: Zeichenkette zerlegen...
 
Das macht aus einem Variant einen WideString.

Sollte sich durch eine einfache Zuweisung ersetzen lassen.
Delphi-Quellcode:
S := V;
(jenachdem wie der Aufruf genau aussieht, da ich die Codestelle jetzt nicht direkt kenn)

delphinia 26. Apr 2011 13:28

AW: Zeichenkette zerlegen...
 
Delphi-Quellcode:
procedure TlkJSONstring.SetValue(const AValue: Variant);
begin
  FValue := VarToWideStr(AValue);
end;
das der Code

DeddyH 26. Apr 2011 13:30

AW: Zeichenkette zerlegen...
 
Aus der Variants.pas von Delphi 2007 (das Zitat ist hoffentlich erlaubt):
Zitat:

Delphi-Quellcode:
function VarToWideStr(const V: Variant): WideString;
begin
  Result := VarToWideStrDef(V, NullAsStringValue);
end;

function VarToWideStrDef(const V: Variant; const ADefault: WideString): WideString;
begin
  if not VarIsNull(V) then
    Result := V
  else
    Result := ADefault;
end;


himitsu 26. Apr 2011 13:38

AW: Zeichenkette zerlegen...
 
Wenn es VarToWideStr nicht gibt, dann wird vermutlich auch VarToWideStrDef nicht vorhanden sein.

Eventuell liegen die im D5 auch nur woanders.
Delphi-Quellcode:
procedure TlkJSONstring.SetValue(const AValue: Variant);
begin
  FValue := AValue; // Delphi sollte das auch automatisch umwandeln können
end;

delphinia 26. Apr 2011 13:45

AW: Zeichenkette zerlegen...
 
Offtopic: sehe gerade im Memberbereich von "embarcadero.com" das ich sogar 2 Lizenzen für "Turbo Delphi 2006 Explorer Edition" - tzzz *confus*

öhm ja also habe nun auch das von Dir ersetzt...

Delphi-Quellcode:
procedure TlkJSONstring.SetValue(const AValue: Variant);
begin
  FValue := AValue;
end;
aber es wird ein Fass ohne Bode! wir sind gerade bei Zeile 737 von fast 2500 und schon das nächste...

Code:
VarIsNumeric
was mein D5 nicht kennt!

Habe mal nun so durch gescrollt... das wird auch noch weiter so gehen "strSpecialChars" - dann versuch ich mein Glück mal mit anderen Parsern... :(

DANKE EUCH SOWEIT...:thumb:

himitsu 26. Apr 2011 13:53

AW: Zeichenkette zerlegen...
 
VarIsNumeric...

Ja, wie der Name schon sagt ... einfach prüfen, ob im Variant ein nummerischer Wert drin steckt :zwinker:

Delphi-Quellcode:
Result := TryStrToFloat(String(AValue));

// aber TryStrToFloat kennt dein Delphi wohl nicht

var
  E: Integer;
  F: Single;
Val(String(AValue), F, E);
Result := E = 0;
[edit]
halt nee, String() könnte auch noch eine Exception auslösen

Delphi-Quellcode:
try
  StrToFloat(String(AValue));
  Result := True;
except
  Result := False;
end;

delphinia 26. Apr 2011 14:39

AW: Zeichenkette zerlegen...
 
ich habe mit mit dem parser "uJSON" beschäftigt musste zwar auch da eine oder andere.... Aber habe es im Inet gefunden was fehlte bzw verändert und er scheint zu laufen, da ich es nur zum Lesen brauche hoffe och das er mich nicht im Stich lässt!


Noch einmal DANKE an Euch alle die hier echt super geholfen haben!

idefix2 26. Apr 2011 14:44

AW: Zeichenkette zerlegen...
 
Die Frage ist, ob es nicht anders einfacher geht, weil eigentlich brauchst Du doch keinen kompletten Parser.

Wenn Du irgend eine regex Bibliothek findest, die unter Delphi5 läuft, dann sollte es kein grosses Problem sein, dieses eine spezielle Rückgabeformat, das Du hast, mittels regex in ihre Bestandteile zu zerlegen. Ist sicher einfacher, als ein umfangreiches Tool an D5 anzupassen, das zwar viel mehr könnte, aber von dem Du eigentlich nicht viel brauchst.


edit: Der Tipp kam offenbar zu spät - vielleicht umso besser :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:24 Uhr.
Seite 3 von 4     123 4      

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