Har ikek noget med val at gøre - jeg fatter ikke hvor de " kommer fra, det ser helt rigtigt ud det du gør. Prøver lige din kode af i VBA (har ikke VB her - 2 sek)
Her er hele koden. Sourcefile er en asciifil med fastlængde Targetfile er ; sepereret
Private Sub bt_ConvertFile_Click() On Error GoTo fejl
Dim Medarbejdernr As Single Dim strMedarbejdernr As String Dim svar As String 'Linjenr = 1 SourceFileName = Me.txtSourceFile TargetFileName = Me.txtTargetFile Me.MSFlexGrid2.Clear Me.MSFlexGrid2.Rows = 1 With MSFlexGrid2 .TextMatrix(0, 0) = "nr" .TextMatrix(0, 1) = "Dato" .TextMatrix(0, 2) = "Varenr" .TextMatrix(0, 3) = "Antal" End With Open SourceFileName For Input As #1 Do While Not EOF(1) Line Input #1, Linje Linjenr = Linjenr + 1 Loop Close #1 svar = MsgBox("Du er ved at impoterer " & Linjenr & " Poster. Tryk OK for at fortsætte", vbOKCancel, " Importer data fra dantid")
If svar = vbOK Then 'Importerer datafil fra DANTID Screen.MousePointer = 11 Linjenr = 1 Open TargetFileName For Output As #2 Close #2 Open SourceFileName For Input As #1 Do While Not EOF(1) Line Input #1, Linje importerlinje (Linje) Linjenr = Linjenr + 1 Loop Close #1 Screen.MousePointer = 1 'mbox ("Du har nu importeret " & linjenr & " poster") Else Exit Sub End If
fejl: If Err.Number = 0 Then Exit Sub End If Mbox (Err.Description) Mbox (Linje) Exit Sub End Sub
Public Sub importerlinje(Linje As String) On Error GoTo fejl
Dim stDocName As String Dim stLinkCriteria As String Dim Pos As Single Dim Medarbejdernr As Single Dim Dato, nydato As String Dim Ordrenrstr, tidsforbrugstr As String Dim Ordrenr, Terminal As Double Dim aktivitet As Single Dim Regtid, starttid, sluttid, Lønart, terminalstr, Antalstr, antalgodestr As String Dim Tidsforbrug As String Dim tid As Double Dim antal As Double Dim AntalGode, AntalSkrot As Integer Dim exlinje As String Dim varenr As String
nydato bliver oprettet på baggrund af noget du læser ind fra en fil. Hvordan står dataene i den fil du læser fra - her de et " i sig? Det kunne være en forklaring på det forreste "
Exempel på sourecefilelinje 00035181103010220040100023006:4507:0015:061213000300991,007000007,60
vedr. dim kan det så være årsagen??
Dette kommer nok til at koste mig nogle flere point!!! Tak for din indsats. Modulet konverterer tekst fil fra tidsregistrerings system og til en indlæsningsfil i navigator. modulet kan sparer for en masse lager bogføring
Hvis msg-boxen køres lige forinden du skriver til filen, og den IKKE indeholder " kan der KUN blive indsat " i følgende linie
Write #3, exlinje
Det giver ikke mening!
Nu du er ved at rette bør du nok dimme en variabel pr. linie, men jeg er 99% sikker på at det ikke løser dit problem. Jeg fatter ikke hvor de " kommer fra.
Det svarer jo til at du laver et helt nyt program
Dim Linie as String Linie = "Hej med dig" msgbox Linie Open "C:\test.txt For Append As #1 Write #1, linie Close #1
Der vil (bør) ikke komme " ind, i filen test.txt bør der i nederste linie stå: Hej med dig (uden ") (prøv evt 'programmet' af)
Jeg var overbevist om at der ikke kom " i mit lille kodeeksempel - det vill ejeg æde min hat på at der ikke jgjorde i VB. Men der gør altså i VBA 8som jeg testede med), og så gør der åbenbart også i VB.
Jeg aner ikke hvordan du undgår det. En klodset måde er at lave en lille procedure, der åbner filerne, og fjerner første og sidste tegn i hver linie hvis tegnet er et ".
Måske andre kan hjælpe?
TIl alle andre:
For at koge det ned:
Koden:
Dim Linie as String Linie = "Hej med dig" msgbox Linie Open "C:\test.txt For Append As #1 Write #1, linie Close #1
Output bliver en linie i filen test.txt, der ser sådan ud: "Hej med dig"
Prøv at oprette et nyt a la det jeg skrev 19/11-2003 11:53:28, og præciser om det er VBA eller VB.
Jeg er 99% sikker på at jeg har lavet VB-programmer hvor disse " ikke optræder - så måske er det en VBA-ting (ved stadig ikek om du taler vb eller vba)
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.