Win xp, office2003
van ilyen lista:
cég név1
város1
utca1
irányító szám1
-üres-
cég név2
város2
utca2
irányító szám2
-üres-
cég név3
város3
utca3
irányító szám3
-üres-
cég név4
város4
utca4
irányító szám4
ebből kellene valahogy ilyet csinálni:
cég név1;város1;utca1;irányító szám1
cég név2;város2;utca2;irányító szám2
cég név3;város3;utca3;irányító szám3
cég név4;város4;utca4;irányító szám4
Az elválasztó karakter lehet más is.
Ötlet?
Olyan megoldás kellene ami egyszerűen is megy.
Oldal 1 / 1
egymás alatti lista mezőkből egymás mellettit kellene csinálni
#2
Elküldve: 2008. 02. 08. 20:43
Gondolom Excel, mert az lemaradt. Ez szerintem erősen VB makróra való feladat.
A kérdést pedig lehetőleg ebben a topicban folytassuk.
Sub Listazo() Dim sh As Worksheet, ash As Worksheet, ForrasSor As Long, CelSor As Long, UtolsoSor As Long Set ash = ActiveSheet ' Új lap létrehozása Eredmény néven. Set sh = ThisWorkbook.Sheets.Add sh.Name = "Eredmény" ' Adatok átvétele ForrasSor = 1 CelSor = 1 UtolsoSor = ash.Cells(65535, 1).End(xlUp).Row For ForrasSor = 1 To UtolsoSor If Len(ash.Cells(ForrasSor, 1)) = 0 Then 'Üres cella esetén levesszük az utolsó kirakott adat végéről a pontosvesszőt, majd új sorba lépünk. sh.Cells(CelSor, 1) = Left(sh.Cells(CelSor, 1), Len(sh.Cells(CelSor, 1)) - 1) CelSor = CelSor + 1 Else 'Nem üres cella esetén másoljuk a cella tartalmát a kimeneti sor végére. sh.Cells(CelSor, 1) = sh.Cells(CelSor, 1) & ash.Cells(ForrasSor, 1) & ";" End If Next 'Még az utolsó kimenő sor végéről levesszük a pontosvesszőt. sh.Cells(CelSor, 1) = Left(sh.Cells(CelSor, 1), Len(sh.Cells(CelSor, 1)) - 1) End Sub
A kérdést pedig lehetőleg ebben a topicban folytassuk.
Pen-drive-on, notebookon, PDA-n kizárólag máshonnan reprodukálható/visszamásolható adat legyen!
Ami hordozható, az nem megbízható!
Ami hordozható, az nem megbízható!
#3
Elküldve: 2008. 02. 08. 21:44
Idézet: Root_Kiskacsa - Dátum: 2008. febr. 8., péntek - 21:43
Gondolom Excel, mert az lemaradt. Ez szerintem erősen VB makróra való feladat.
...
A kérdést pedig lehetőleg ebben a topicban folytassuk.
...
A kérdést pedig lehetőleg ebben a topicban folytassuk.
Köszi, megnézem.
Excel nem maradt le, valami parancssoros megoldásnak jobban örülnék, így ne ott folytassuk.
#4
Elküldve: 2008. 02. 09. 18:28
Idézet: pgyafi - Dátum: 2008. febr. 8., péntek - 21:44
Köszi, megnézem.
Excel nem maradt le, valami parancssoros megoldásnak jobban örülnék, így ne ott folytassuk.
Excel nem maradt le, valami parancssoros megoldásnak jobban örülnék, így ne ott folytassuk.
Az elején megtévesztett, hogy említetted az Office 2003-mat, de más bemeneti/kimeneti formátumot nem. A kód kis változtatással akármire átalakítható, az algoritmus lényegében ugyanaz. Ha parancssorból akarod használni, ahol a bemenet és a kimenet is egy-egy txt, akkor a vbs-t ajánlom. Így néz ki a korábbi kód vbs-ben, mentsd el valamilyen vbs kiterjesztésű fájlnéven:
Dim BeolvSor, KimenoSor, Forras, Cel, fso
If Wscript.Arguments.Count < 2 then
Wscript.Echo "Paraméternek meg kell adni a forrásállomány és a célállomány nevét."
WScript.Quit 1
End If
' Felkészülés: fájlok nyitása
Set fso = CreateObject("Scripting.FileSystemObject")
Set Forras = fso.OpenTextFile(Wscript.Arguments(0))
Set Cel = fso.OpenTextFile(Wscript.Arguments(1), 2, True)
KimenoSor = ""
' Adatok átvétele
CelSor = 1
Do Until Forras.AtEndOfStream
BeolvSor = Forras.ReadLine
If Len(BeolvSor) = 0 Then
'Üres sor esetén levesszük az utolsó pontosvesszőt a kimenetvégéről, majd kiírjuk a kimenetet - feltéve, hogy nem volt eleve üres.
If KimenoSor <> "" Then KimenoSor = Left(KimenoSor, Len(KimenoSor) - 1)
Cel.WriteLine KimenoSor
KimenoSor = ""
Else
'Nem üres cella esetén másoljuk a cella tartalmát a kimeneti sor végére.
KimenoSor = KimenoSor & BeolvSor & ";"
End If
Loop
'Még az utolsó kimenő sort ki kell írni.
If KimenoSor <> "" Then KimenoSor = Left(KimenoSor, Len(KimenoSor) - 1)
Cel.WriteLine KimenoSor
' Befejezés előtti tisztogatás
Forras.Close
Cel.Close
Set Forras = Nothing
Set Cel = Nothing
Set fso = NothingValószínűleg megoldható kis ügyeskedéssel batchben is, de az nem az erősségem.
Pen-drive-on, notebookon, PDA-n kizárólag máshonnan reprodukálható/visszamásolható adat legyen!
Ami hordozható, az nem megbízható!
Ami hordozható, az nem megbízható!
#5
Elküldve: 2008. 02. 09. 19:26
Idézet: Root_Kiskacsa - Dátum: 2008. febr. 9., szombat - 19:28
Valószínűleg megoldható kis ügyeskedéssel batchben is, de az nem az erősségem.
teljesen jó!
köszönöm!
Téma megosztása:
Oldal 1 / 1

Súgó
A téma zárva.









