einen String bearbeiten und Nullen löschen

shisho1980

Grünschnabel
Guten Tag,

Ich habe folgendes Problem, in meinem Script lese ich aus einer ASCII-Datei verschiedene Adressinformationen für das Generieren eines Wordbriefes ein. Die Ursprungsdatei ist mit festen Breiten formatiert. Die Position die mich beschäftigt ist die Hausnummer welche die leeren Felder mit Nullen ausfüllt Bsp:

Hausnummer Effektiv:12
Hausnummer in meinem String: 00012

Wie kann ich die vorangehenden Nullen jeweils in meinem Script löschen? Ich kann natürlich nicht einfach ein Find&Replace machen da es ja auch möglichweise folgende Kombination gibt:

Hausnummer Effektiv: 102
Hausnummer in meinem String: 00102

Wenn ich hier alle Nullen mit nichts ersetzt erhalte ich eine falsche Zahl 12!

Danke für Hilfe
 
Caste doch die Hausnummer in eine Zahl
Visual Basic:
cint()

Das einzige Problem wären dann noch Hausteile a, b oder c wenn diese nicht in einem anderen Feld gespeichert sind.
 
Konvertiere die variable in einen Intergerwert.

Zum Beispiel:
Code:
Dim s as String
s = "00012"
'Aufruf: convertString s
Private Function convertString (z as String) as Integer
  convertString = CINT(z)
End Function
 
Zuletzt bearbeitet:
Besser wäre es, den Wert mit Val() umzuwandeln, so hast du kein fixes Zahlenformat sondern einfach nur eine Zahl.


Der Doc!
 
@ Snoop
Wenn die Anfangen Fliesskommazahlen als Hausnummern zu vergeben dann wander ich aus.

Grüsse bb
 
Ich würde das mit Replace Function machen:

Dim s as String
s = "00012"

Private Function convertString (z as String) as Integer
convertString = Replace(z, "0", "")
End Function

So kannst du jeden String benutzen und auch noch schnell, auf alle anderen Zeichen erweitern.
 
Tja, was soll ich sagen...
Wohl nichts anderes als: Nein, hab ich wohl nisch...
also KEIN Repace, BESSER in INTEGER Wert umwandeln !

Idee:
Man könnte aber auch, mit replace alle nullen mit " " ersetzen, dann Trim benutzen und dann wieder replacen " " mit null.
Was natürlich totaler quatsch wäre, weil das viel mehr perform. kostet und man noch kommastellen "abfangen" müsste.
Aber mal ne Frage: Würde es bei Kommastellen - Zahlen reichen in einen Double Wert umzuwandeln ?
 
Zuletzt bearbeitet:
Zurück