![]() |
Delphi-Version: 7
String trennen
Hallo,
habe eine Artikennr. Die ist immer 5-Stellig, wobei falls die Artikel-Nr. kleiner als 5 Stellen hatt, dann wird der Rest mit "0" aufgefüllt. Bsp.: 00005, 00050, 00505, 05032, 75602 usw. Ich soll die zahlen, so darstellen, dass die vorangestellten '0' mit einem gewissen Abstand zum Rest der Zahlen angezeigt werden. Bsp.: 0000 5, 000 50, 00 505, 0 5032, 75602 usw. Habe mit ansicomparestr() rumprobiert, dass Ergenis war mager. Wie könnte ich die Anzahl der Nullen vor der eigentlichen Zahl herausfinden? Danke, Luckner |
AW: String trennen
Delphi-Quellcode:
ist i>0 dann ist das die letzte 0-Position
i:=0;
maxlen:=length(zeile); if maxlen>0 then begin i:=1; while (i<maxlen) and (Zeile[i]='0') do inc(i,1); if Zeile[i]<>'0' then dec(i,1); end; Gruß K-H |
AW: String trennen
Du suchst das erste Auftreten einer Ziffer ungleich Null von links her (Nicht getestet):
Delphi-Quellcode:
Ich habe hier absichtliche keine Strin-Indexierung verwendet, damit es bei neueren Compilern / Plattformen keine Probleme gibt.
DigitPos := 0;
for i := 0 to length(ArtNr) do begin if copy(ArtNr, i, 1) <> '0' then begin DigitPos := i; break; end; end if DigitPos > 0 then ArtNr := StringOfChar('0', length(ArtNr)-DigitPos+1) + ' ' + copy(ArtNr,DigitPos, length(ArtNr)-DigitPos+1); |
AW: String trennen
Ja, so wird Das funktionieren, Vielen Dank.
Luckner. |
AW: String trennen
Ist die Artikelnummer jetzt ein String oder ein Integer?
Brauchst du das hier nur für die Darstellung oder werden die Artikelnummern auch mit führenden Nullen gespeichert? |
AW: String trennen
Zitat:
Gruß K-H |
AW: String trennen
Ich denke, das Beispiel von Union funktioniert nicht. Die Indexierung von Strings (auch bei der Copy-Funktion) beginnt bei 1. Aber der Ansatz ist richtig, nicht über die Indizierung wie im Beispiel von p80286 zu gehen.
Mein (ungeprüfter) Vorschlag:
Code:
i := 1;
while copy(ArtNr, i, 1) = '0' do inc(i); if i > 1 then insert(' ', ArtNr, i); |
AW: String trennen
Zitat:
|
AW: String trennen
Zitat:
Ich weiß Excel z.B. denkt da vollkommen anders und versucht mit allem was numerisch sein könnte zu rechnen. Dabei gehen natürlich auch führende Nullen über Bord. Da hilft es nur massiv auf die Interpretation als Text/String zu bestehen. Gruß K-H |
AW: String trennen
Die Lösung von p80286 hat funktioniert. Die Zahlenbeispiele waren Strings. Hatte vergessen Das zu erwähnen, wobei Integer mit führenden Nullen wären nicht einfach darstellbar. Danke für die schnelle Lösung.
Luckner |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:54 Uhr. |
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