Visual Basic 2010-ben hogyan tudok két stringet összefűzni?
Akkor a kérdésed nem jó, az összefűzés azt jelenti, hogy egymásután írod.
Amit te akarsz, azt én úgy csinálnám, hogy először átkonvertálnám számmá a két szöveget. Utána összeadnám, majd visszakonvertálnám szöveggé (úgy, hogy kapjon vezető 0-kat, ha szükséges).
Ez így csak elméleti megoldás, gyakorlatinak megpróbálok utánajárni, de nem ígérek semmit.
Valami ilyesmi:
Dim string1 As String = "00000"
Dim string2 As String = "123"
Dim string3 As String
Dim int1 As Integer
Dim int2 As Integer
Dim int3 As Integer
int1 = CInt(string1)
int2 = CInt(string2)
int3 = int1 + int2
string3 = CStr(int3)
string3 = "00000" & string3
string3 = Right(string3, 5)
Ez az szám-szöveg konvertálgatás egy meglehetősen költséges dolog. Ráadásul oda vissza akarod csinálni. És nem is praktikus.
Gyakorlatiasabb megoldás a következő:
Kiírsz a "00000" string1-ből (5-string2.hossz()) számú karaktert, aztán kiírod a string2-őt teljes egészében.
A hossz() alatt természetesen a string hosszát értem temináló karakter nélkül.
Minimális vizsgálat kell, hogy ha a string2 hosszabb 5-nél, akkor nem írunk ki többet.
Nagyon régen láttam VB-t de szerintem:
While Len(string2) < 5
string2 = "0" & string2
End While
2# ez meg a fene?
Az utolsó két soron kívül egyetlen értelmes dolgot nem csinálsz.
int3 = int1 + int2
Tudod jól, hogy az int1 nulla lesz, akkor meg miért adod össze?
Mi a fenének konvertálgatod oda-vissza? Van egyáltalán haszna?
Aztán a végén végül is megoldod a sok tortúra után.
string3 = "00000" & string3
string3 = Right(string3, 5)
Gyakorlatilag, ha ennyi lenne az egész kód, jó is lenne.
string3 = "00000" & string2
string3 = Right(string3, 5)
#4 Ez már egy jó megoldásnak tűnik, azonban a stringek módosítása elég memória őrlő dolog.
Gyakorlatilag sok stringet készítesz a ciklusodban.
5
05
005
0005
00005
Ha mindenképpen változóban szeretnénk eltárolni a végeredményt a következőt javaslom:
Legyen egy hat elemű karaktertömb aminek az értéke "00000".
A 5-string2.lenght() pozíciótól írjuk bele a string2 értékét null termináltóval. És ennyi.
És ha az első nem csak 00000 lehet?!
Ha mindig az, akkor igazatok van. Én példának vettem azokat, amiket írt.
Előző:
Igazából nem tudjuk mit akar a kérdező. Mi van akkor, ha a string1-ben nem csak 0-k vannak? Akkor melyik karakterei kellenek? Vagy össze kell adni számként? Ebben az esetben lehet az első válaszolónak igaza.
De lehet, hogy csak egy PadLeft kell a kérdezőnek, ebben az esetben a string1-re semmi szükség:
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!