08. december 2005 - 09:03
Der er
14 kommentarer og 6 løsninger
Script til at omdøbe 2 til 1 i en stor txt fil.
Jeg har en kæmpe txt fil der lister en masse telefon numre. Hvor telefon numreret står i den første kolonne og et customer nummer står i kolonne to. 'kolonnerne' er delt med mellemrum, men nogle af telefon numrene er længere end de andre, så jeg kan ikke bare tælle mellemrums tegn. Listen starter også med 4 mellemrum før telefon nummeret starter. indholdet ser nogenlunde sådan ud: "|" viser rammen i notepad ;) | 2012 100 A A M M M 0.00 | 4512 200 A A M M M 0.00 | 95412 100 A A M M M 0.00 | 96417 200 A A M M M 0.00 Er det muligt at rette alle 2'tallerne i kolonne to til 1'taller? Og hvordan skal jeg gribe den an? Kan i pege mig i den rigtige retning?
Annonceindlæg fra Infor
08. december 2005 - 09:05
#1
Det ekstra mellemrum der er efter 5 cifrede numre skal ikke være der... min fejl.. kunde numrene står under hinanden, lidt ligesom en tabel oversigt i excel, hvis i forstår.
08. december 2005 - 09:08
#2
Hvis du prøver at sende filen på ck@officekonsulenterne.dk så skal je prøve at kigge på det :-) /Christian
08. december 2005 - 09:11
#3
Sendt.
08. december 2005 - 09:19
#4
Du kan gøre fx. sådan her: strString = " 2012 100 A A M M M 0.00" arrTxt = Split(strString, " ") intLength = Len(arrTxt(1)) -1 strNewSting = Left(arrTxt(1), intLength) MsgBox(strNewSting) //>Rune
08. december 2005 - 09:25
#5
hehe Rune, det kan være du ikke er helt med på ideen. det er 2'tallerne i kolonne 2 der skal ændres til 1'taller. det dine 5 linier gør er blot at take de første 3 tal i kolonne 1 og fjerne det sidste 2'tal.
08. december 2005 - 09:26
#6
Jeg har ikke modtaget filen... /Christian
08. december 2005 - 09:27
#7
Agh agh, jeg glemte vel bare at skrive det sidste tal bagved... strString = " 2012 100 A A M M M 0.00" arrTxt = Split(strString, " ") intLength = Len(arrTxt(1)) -1 strNewSting = Left(arrTxt(1), intLength) strNewString = strNewString & "1" MsgBox(strNewSting) //>Rune
08. december 2005 - 09:33
#8
:Rune Ja, nu ligner det noget (efter lidt insættelse af nogle 'r' :P) :Christian, jeg prøver lige igen.
08. december 2005 - 09:38
#9
Men Rune... er det ik meningen at scriptet skal printe hele strengen ud på skærmen, hvor kolonne to har ændret sig, hvis der stod 200?
08. december 2005 - 10:04
#10
nej, men et kan vi da bare gøre: strString = " 2012 100 A A M M M 0.00" arrTxt = Split(strString, " ") intLength = Len(arrTxt(1)) -1 strNewString = Left(arrTxt(1), intLength) strNewString = " " & strNewString & "1" strRestString = Right(strString, Len(strString)-(intLength+1)-4) strFinialString = strNewString & strRestString MsgBox(strFinialString) //>Rune
08. december 2005 - 10:16
#11
Hvis jeg sætter strString = " 2012 200 A A M M M 0.00" altså 200 i kolonne 2, så bliver strFinalString statig: " 2012 200 A A M M M 0.00" hvor 200 skulle have været 100
08. december 2005 - 10:27
#12
Jamen vil du da bare ha' alle 2 tallerne bliver til 1 taller?? Så gør du jo bare sådan her: strString = " 2012 100 A A M M M 0.00" strFinialString = Replace(strString, "2","1") MsgBox(strFinialString) //>Rune
08. december 2005 - 10:30
#13
Eller er det sådan her du mener: strString = " 2012 200 A A M M M 0.00" arrTxt = Split(strString, " ") intLength = Len(arrTxt(1)) -1 strNewString = Left(arrTxt(1), intLength) strNewString = " " & strNewString & "1" strRestString = Replace(Right(strString, Len(strString)-(intLength+1)-4), "2", "1") strFinialString = strNewString & strRestString MsgBox(strFinialString) //>Rune
08. december 2005 - 10:45
#14
Det skal kun erstatte 2 med 1 i kolonne nummer to, og KUN i kolonne nummer to :o)
08. december 2005 - 10:53
#15
Jamen så gør vi sådan her :-) strString = " 2012 200 A A M M M 0.00" arrTxt = Split(strString, " ") intLength = Len(arrTxt(1)) strNewString = Left(arrTxt(1), intLength) strNewString = " " & strNewString strRestString = Replace(Right(strString, Len(strString)-(intLength+1)-4), "2", "1") strFinialString = strNewString & strRestString MsgBox(strFinialString) //>Rune
08. december 2005 - 13:00
#16
Hvis jeg nu vil have den til at gøre det ved alle linier i en txt fil, hvad ville så være nemmest?
08. december 2005 - 14:02
#17
Løbe hver linje igennem i en løkke og brug min kode i en funktion som en converter... fx.: Function Converter(strString) arrTxt = Split(strString, " ") intLength = Len(arrTxt(1)) strNewString = Left(arrTxt(1), intLength) strNewString = " " & strNewString strRestString = Replace(Right(strString, Len(strString)-(intLength+1)-4), "2", "1") strFinialString = strNewString & strRestString Converter = strFinialString End Function og så siger du jo bare: Converter(Linje_fra_tekstfil) //>Rune
12. december 2005 - 09:24
#18
Har du fundet ud af det? //>Rune
12. december 2005 - 09:44
#19
Ja. Din converter var en god løsning. Den blev brug i en lille del af det endelige script.
12. december 2005 - 10:16
#20
Det var godt det kunne bruges. //>Rune
Kurser inden for grundlæggende programmering