Delphi-PRAXiS
Seite 2 von 5     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   String zerlegen (https://www.delphipraxis.net/155074-string-zerlegen.html)

Luckie 7. Okt 2010 12:09

AW: String zerlegen
 
Zitat:

Zitat von HeikoAdams (Beitrag 1054266)
Zitat:

Zitat von Bummi (Beitrag 1054264)
Wobei COPY nicht 0 sondern 1 basiert ist....

Quatsch! Die erste Position in einem String ist Position 0 und wenn ich von Anfang an etwas aus dem String kopieren will, muss ich mit 0 anfangen 8-)

Wie schon gesagt, Delphi Strings fangen bei eins an. Davor steht die Längenangabe. Siehe dazu auch Motzis String Tutorial: http://www.manuel-poeter.de/index.php?site=tutorials

Wolfgang Mix 7. Okt 2010 12:11

AW: String zerlegen
 
Delphi-Quellcode:
datum:=20100917
jahr:=copy(datum,1,4));
monat:=copy(datum,5,2));
tag:=copy(datum(7,2));
Kopiere ab Zeichen x Zeichen

toms 7. Okt 2010 12:11

AW: String zerlegen
 
Zitat:

Zitat von HeikoAdams (Beitrag 1054270)
Und warum liefert mir dann
Delphi-Quellcode:
Copy('abcd', 0, 1)
als Ergebnis 'a'?

und was liefert denn Copy('abcd', 1, 1)? (sollte nach deiner "Theorie" b liefern, liefert jedoch auch a)

HeikoAdams 7. Okt 2010 12:11

AW: String zerlegen
 
Zitat:

Zitat von toms (Beitrag 1054274)
Zitat:

Zitat von HeikoAdams (Beitrag 1054270)
Und warum liefert mir dann
Delphi-Quellcode:
Copy('abcd', 0, 1)
als Ergebnis 'a'?

und was liefert denn Copy('abcd', 1, 1)? (sollte nach deiner "Theorie" b liefern, liefert jedoch auch a)

Dann ist Copy da entweder sehr tolerant oder es verarscht einen - wie dem auch sei:

Wir kommen vom Thema ab :wink:

Satty67 7. Okt 2010 12:12

AW: String zerlegen
 
Zitat:

Zitat von HeikoAdams (Beitrag 1054270)
Und warum liefert mir dann
Delphi-Quellcode:
Copy('abcd', 0, 1)
als Ergebnis 'a'?

Weil Copy fehlertolerant ist und bei Position < 1 = 1 annimmt.

Na auf jeden Fall dürfte er nicht mehr übersehen, das Copy eine ganz interessante Funktion für die Aufgabe ist ;)

HeikoAdams 7. Okt 2010 12:16

AW: String zerlegen
 
Zitat:

Zitat von Satty67 (Beitrag 1054276)
Zitat:

Zitat von HeikoAdams (Beitrag 1054270)
Und warum liefert mir dann
Delphi-Quellcode:
Copy('abcd', 0, 1)
als Ergebnis 'a'?

Weil Copy fehlertolerant ist und bei Position < 1 = 1 annimmt.

IMHO ist das nicht sehr klug. Eine entsprechende Fehlermeldung auszugeben wäre wahrscheinlich klüger.

So, und jetzt bitte Back2Topic

Bummi 7. Okt 2010 12:18

AW: String zerlegen
 
ist zwar blöd hier rumzudiskutieren aber was liefert bei Dir:

Copy('abcd', 2, 1)

HeikoAdams 7. Okt 2010 12:20

AW: String zerlegen
 
Zitat:

Zitat von Bummi (Beitrag 1054278)
ist zwar blöd hier rumzudiskutieren aber was liefert bei Dir:

Copy('abcd', 2, 1)

Ergebnis: b

Bummi 7. Okt 2010 12:24

AW: String zerlegen
 
eben...... und Schluß mit dem Quatsch von 0 basiert

Satty67 7. Okt 2010 12:28

AW: String zerlegen
 
Hab' mich selber erst vor zwei Tagen bei den Copy-Parametern verhauen, kann ja mal passieren.

Richtig ist aber auch, das ein OutOfRange-Error die bessere Lösung wäre. _LStrCopy korrigiert aber leider den Index auf die Grenzen des String ohne Fehler zu melden.

Aber auch richtig ist, das es doch etwas Off-Topic wird ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:57 Uhr.
Seite 2 von 5     12 34     Letzte »    

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 by Thomas Breitkreuz