11. maj 2005 - 15:12Der er
5 kommentarer og 1 løsning
Script til at lav en ny txt fil, udfra eksisterende.
Hey Alle...
Nu har jeg igen brug for lidt hjælp..
Jeg skal have lavet et script som skal bruges til at kopiere alt indhold fra en .ini fil, over til en ny fil... og hvis den rammer et brugernavn som er defineret udfra en variabel, skal den skrive ";Ledig" foran og skrive nøjagtig det samme som før, plus at den så skal gå videre i scriptet og skrive hvad der nu ellers står...
FX. Hvis jeg har en .ini fil der hedder Morten hvori der står: Morten Kurt Egon Finn
Og i min variabel har jeg brugernavnet Morten så skal der i filen stå:
;Ledig Morten Kurt Egon Finn
til slut skal den midlertidige fil så omdøbes til at hedde det samme som den anden men det kan jeg sagtens selv lave...
Jeg har også fået lavet lidt af det, men jeg synes ikke rigtig jeg kan få den til at gøre HELT hvad det er jeg gerne vil have...
Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile("c:\morten.ini", ForReading) Do While f.AtEndOfStream <> True strLine = f.ReadLine strWrite = strWrite & strLine & vbCrLf Set MyFile = fso.CreateTextFile("c:\testfile.txt", OverwriteExisting) MyFile.WriteLine(strWrite) MyFile.Close Loop
den kopiere alt indholdet fra en fil til en anden, men jeg kan ikke lige greje den sidste del, for hvis man laver en IF Then statement så skal jeg jo stadig have skrevet det, uden den skriver brugernavnet igen...
Tjah nu fik jeg det selv til at virke, og det spiller bare, så nu skal jeg bare have det til at omdøbe filen, men ved i om det kan lade sig gøre at omdøbe den også overskrive hvis der er en eksisterende... eller om jeg skal slette den gamle fil først...
okay.. mit første problem var at jeg ikke kunne omdøbe filen til det den anden hed, da der tilsyneladende (af hvad jeg kan finde ud af) ikke er nogen funktion når man omdøber der hedder overskriv...
Så er jeg stødt ind i et andet problem, til sidst i filen der har jeg det problem den sætter et tomt space ind (altså enter) hvilket vil sige den på sigt vil have en masse blanke spaces i bunden, dette vil jeg også helst slippe for...
Hvis du stadig ikke forstår det må du jo lige skrive, for så skal jeg nok se om ikke jeg kan forklare det på en anden måde...
Hey Morten ! Det ser ud til, at det ikke er scriptet, der indsætter "enteren" men simpelthen den måde den nye fil bliver lavet på. Hvis du blot laver en ny textfil, vil den første linie jo altid være der. Når du så indsætter nye linier bliver denne jo bare skubbet nedad :) Når du så læser filen, vil den læse mellemrummet igen, og indsætte det igen :) Hvis du gør sådan her slipper du for, at den bliver ved med, at indsætte "enter" :
Do While f.AtEndOfStream <> True strLine = f.ReadLine count = count+1 If count = 1 then intIsTrue = Instr(1,strLine,"Morten", 1) If intIsTrue > 0 Then strWrite = strWrite & ";Ledig " & strLine else strWrite = strWrite & strLine End If else intIsTrue = Instr(1,strLine,"Morten", 1) If intIsTrue > 0 Then strWrite = strWrite & VbCrLf & ";Ledig " & strLine Else strWrite = strWrite & VbCrLf & strLine End If End If Loop f.close Set MyFile = fso.CreateTextFile("c:\testfile.ini", OverwriteExisting) MyFile.WriteLine(strWrite) MyFile.Close
He he, i bund og grund så viste jeg godt hvad det var der var galt,
strWrite = strWrite & strLine
denne linje satte et CrLf ned i bunden, jeg har dog fundet ud af hvordan jeg kunne gøre det, og jeg har også fundet ud af hvad jeg kunne gøre for at overskrive den anden.. ;)
Tjah, jeg lukker hvis det er du ikke kommer med et svar, du får indtil næste gang jeg går ind og tjekker... Kan du have det godt takker for hjælpen..
/Leth
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.