Sringa file testo

giovedì 06 settembre 2012 - 21.05
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  Visual Studio 2008  |  MySQL 5.5

Mau67 Profilo | Expert

Ciao forum,
non riesco a vedere l'errore sulla composizione di una stringa, il codice che vi posto questo:

''---- Ultima riga ----
tmp = " " & "EF"
tmp = tmp & "" & CStr("" & TabOrdinante.Rows(0)("Codsiaemitt")).ToString().PadRight(5, Char.Parse(" "))
tmp = tmp & CStr("" & TabOrdinante.Rows(0)("Abi")).ToString().PadRight(5, Char.Parse(" "))
tmp = tmp & Format(DateTimePicker1.Value, "ddMMyy").ToString().PadRight(6, Char.Parse(" "))
If CStr("" & TabOrdinante.Rows(0)("Flusso")).Length.ToString() < 20 Then
tmp = tmp & CStr("" & TabOrdinante.Rows(0)("Flusso")).ToString().PadRight(20, Char.Parse(" "))
Else
tmp = tmp & CStr("" & TabOrdinante.Rows(0)("Flusso").Substring(0, 20)).ToString().PadRight(20, Char.Parse(" "))
End If
tmp = tmp & CStr("" & TabOrdinante.Rows(0)("CodiceSie")).ToString().PadRight(6, Char.Parse(" "))
tmp = tmp & CInt(idCount - 1).ToString().PadLeft(7, Char.Parse("0")) 'numero righe
tmp = tmp & ((((TotaleImporti).ToString()).Replace(",", "").Replace(".", "")).PadLeft(30, Char.Parse("0"))) 'Totale Importi
tmp = tmp & CInt(totRow + 1).ToString().PadLeft(7, Char.Parse("0")) 'numero righe
tmp = tmp & ("E").ToString().PadLeft(25, Char.Parse(" "))
wrf.WriteLine(tmp)
''---------------------

Compone questa stringa CON POSIZIONI A LUNGHEZZA FISSA:

EFXXXXXAAAAA170812FLUSSO BANCA 0000 00001130000000000000000000000161863820000793 E
il pezzo interessato è questo l'importo è 161863,82 000000000000000000000016186382 tra 0000113 e 0000793

Praticamente il codice funziona ma appena l'importo totale ha come decimali 2 zeri qusti non li scrive e quindi sposta di due posizioni la stringa in questo modo
se invecè l'importo è 161863,00 avviene questo
EFXXXXXAAAAA170812FLUSSO BANCA 0000 00001130000000000000000000000001618630000793 E
sposta verso destra l'importo di due posizioni eliminando i due zero così 000000000000000000000000161863

il problema è quà tmp = tmp & ((((TotaleImporti).ToString()).Replace(",", "").Replace(".", "")).PadLeft(30, Char.Parse("0"))) 'Totale Importi
non sò come risolvere

Grazie
Mau67

AntCiar Profilo | Expert

ciao.

se la variabile 'TotaleImporti' che usi nella composizione della stringa è di tipo double o decimal, allora puoi utilizzare questa:

tmp = tmp & (((TotaleImporti.ToString("N2")).Replace(",", "").Replace(".", "")).PadLeft(30, Char.Parse("0")))

mentre nel caso non lo è, utilizza questa:

tmp = tmp & (((cdbl(TotaleImporti).ToString("N2")).Replace(",", "").Replace(".", "")).PadLeft(30, Char.Parse("0")))
Cristian Barca

Mau67 Profilo | Expert

perfetto cristian grazie
ciao alla prossima
Mau67
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5