Lille program til at manipulere text i en text-fil
Hej Eksperter. Jeg skal have et program der kan fjerne et tal og sætte et nul ind i en tekst-linie. Det er en betalingspil fra PBS, hvor kontrolcifferet i kode-linien skal fjernes, og linien skal derfter have indsat et nul foran kundenummeret.
Linien ser således ud: BS0420385705002970000000200000000000000199687100000016100710000000229500 167120071016N1869599451610071710070000000229500
Det er karakter nummer 44 (et 8-tal i denne linie) der skal fjernes, og så skal det erstattes med et nul. der skal stå på karakter nummer 31.
Når linien er "repareret", skal den se således ud: BS0420385705002970000000200000000000000019967100000016100710000000229500 167120071016N1869599451610071710070000000229500
Jeg synes det ville være fint med en dialogboks hvor man kan vælge filen, der skal modificeres (de hedder noget med D4219601.BS1), og samtidig samtidig gemme den modificerede fil under et nyt navn (det kunne da godt være en fast tilføjelse af et A til filnavnet før .BS1 så den hedder B4219601A.BS1)
Hvem kan lave det i excel, access eller blot som en exe-fil??
Public Sub Skift() Dim Gammel As String, Ny As String filnavn = Application.GetOpenFilename If filnavn <> "" Then
Open filnavn For Input As #1 Line Input #1, Gammel 'henter 1 linje Close 1
filnavn = Split(filnavn, ".")(0) & "A." & Split(filnavn, ".")(1) ' tilføjer et "A" til filnavnet Ny = Left(Gammel, 43) & Right(Gammel, Len(Gammel) - 44) ' fjerner tegn 44 Ny = Left(Ny, 30) & "0" & Right(Ny, Len(Gammel) - 31) 'indsætter et "0" på plads 31 Open filnavn For Output As #1 Print #1, Ny Close 1
du skal bare sætte koden ind i et modul, og så kør makroen.
Public Sub Skift() Dim Gammel As String, Ny As String filnavn = Application.GetOpenFilename If filnavn <> False Then
Open filnavn For Input As #1 filnavn2 = Split(filnavn, ".")(0) & "A." & Split(filnavn, ".")(1) ' tilføjer et "A" til filnavnet Open filnavn2 For Output As #2 Do Line Input #1, Gammel 'henter 1 linje If Left(Gammel, 5) = "BS042" Then Ny = Left(Gammel, 43) & Right(Gammel, Len(Gammel) - 44) ' fjerner tegn 44 Ny = Left(Ny, 30) & "0" & Right(Ny, Len(Gammel) - 31) 'indsætter et "0" på plads 31 Else Ny = Gammel End If Print #2, Ny Loop Until EOF(1)
Jeg skal lige afprøve funktionen på en fil jeg henter hér efter den første.
Men det ser ud til at fungere på en fil med kun en linie.
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.