AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Aus ListView Item auslesen

Ein Thema von Jazzman_Marburg · begonnen am 20. Mär 2011 · letzter Beitrag vom 20. Mär 2011
Antwort Antwort
Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

Registriert seit: 2. Aug 2004
359 Beiträge
 
#1

Aus ListView Item auslesen

  Alt 20. Mär 2011, 14:38
Hallo Gemeinde!
Ich hänge mal wieder...

In einem Listview sind in den SubItems Koordinaten (Integer) auszulesen, was ich wie folgt versuche:
X1 := StrToInt(Item.SubItems.Text); Das gestaltet sich aber insoweit schwierig, als es zur Excpetion kommt: EConverError.

Tatsächlich sehe ich im Debugger, dass dort nicht wie erwartet eine 154 steht sondern:
'"154"'#$D#$A (Besonders problematisch ist die Stelle nach der 4: dort sehen ' und " irgednwie wie zusammengeschweisst aus...).
Habt ihr vielleicht eine Idee, wie ich aus dem Geschwurbel eine ordentliche 154 als Integer herausschlagen kann?

Lieben Dank -- bin für jeden Hinweis dankbar!

Gruß
Jazzman
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Aus ListView Item auslesen

  Alt 20. Mär 2011, 14:44
Statt StrToInt() sollte man bevorzugr TryStrToInt(), StrToIntDef() oder Val() verwenden
TryStrToInt() bietet sich an, wenn man auf falsche Eingaben reagieren will,
StrToIntDef() nimmt bei Falscheingabe einen Defaultwert an und
Val() entfernt falsche Zusaätze -> aus '5 €' wird 5
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

Registriert seit: 2. Aug 2004
359 Beiträge
 
#3

AW: Aus ListView Item auslesen

  Alt 20. Mär 2011, 15:02
Vielen Dank für die schnelle Antwort!

Das ist aber nicht ganz, was ich suche:
Also mit folgendem Code versuche ich ein Integer aus dem Item-Text herauszuoperieren:
Delphi-Quellcode:
  temp_str := Item.SubItems.Text; // temp_str = '"31"'#$D#$A
  temp_str := String(PChar(temp_str)); // Null-Char im String-Buffer?
  temp_str := Trim(temp_str); // Löschen Zeilentrenner

  X1 := StrToInt(temp_str); // EConvertError, klar weil temp_str = '"31"'
Es fällt mir mit dieser Methode also schwer, die " herauszufischen, da wie gesagt am Ende die ' und " irgendwie zusammenkleben.

Gruß
Jazzman
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat
Benutzerbild von Björn Ole
Björn Ole

Registriert seit: 11. Jul 2008
166 Beiträge
 
Delphi XE Professional
 
#4

AW: Aus ListView Item auslesen

  Alt 20. Mär 2011, 15:19
Warum so aufwendig:
temp_str := Item.SubItems[0]; // temp_str = 31
  Mit Zitat antworten Zitat
Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

Registriert seit: 2. Aug 2004
359 Beiträge
 
#5

AW: Aus ListView Item auslesen

  Alt 20. Mär 2011, 16:13
Warum so aufwendig:
temp_str := Item.SubItems[0]; // temp_str = 31
Weil es nichts ändert: Auch damit komme ich zu '"31"', was nicht zu einem Integer konvertiert werden kann. Die Anführungszeichen sind das Problem.

Gruß
Jazzman
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

AW: Aus ListView Item auslesen

  Alt 20. Mär 2011, 16:16
Dann ersetze sie doch einfach mit StringReplace durch nichts. Ich verstehe dein Problem nicht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Jazzman_Marburg
Jazzman_Marburg

Registriert seit: 2. Aug 2004
359 Beiträge
 
#7

AW: Aus ListView Item auslesen

  Alt 20. Mär 2011, 16:30
Dann ersetze sie doch einfach mit StringReplace durch nichts. Ich verstehe dein Problem nicht.
Ja, das habe ich soeben gemacht.

Danke & Gruß
Jazzman
--- Delphi XE Starter, Windows 8 ---
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:23 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