2 Vraagjes.....

Status
Niet open voor verdere reacties.

retsech

Gebruiker
Lid geworden
16 mei 2008
Berichten
95
Hi world,

Ik heb een code gevonden die een text file kan lezen uit je harde schijf. Hier is mijn code:

Code:
Open "C:\bestand.txt" For Input As #1
                    Do Until EOF(1)
 
                    Input #1, Data
                   Text1.Text = Data
        EOF (1)
        Loop
    Close

Wat het probleem hiermee is:
Hij alleen de laatste regel zien van het bestand die ik lees. Hij zou juist alles wat er in die bestand staat moeten weergeven.

----------------------

Tweede probleem:

Hier heb ik een code waar je tekst inhoud uit je applicatie kan opslaan in een bestand op je harde schijf. Bijvoorbeeld een .txt kladblok bestandje.

Code:
                Open "C:\test.txt" For Output As #1
        Print #1, text1.text
    Close #1

Wat mijn probleem hiermee is:
Bij het opslaan voegt hij nog 1 lege regel (enter) erbij toe. Zegmaar een VbCrlf. En ik wil hem 100% precies opslaan zoals ik geschreven heb.

*Sorry voor deze onbeschofte vraag, maar zou het misschien een beetje voor mogen? Ik heb eerder een topic geplaatst die never nooit beantwoord is door iemand, ik heb het al zelf weten op te lossen, hopelijk krijg ik hier een beetje hulp mee* :mad:
 
Code:
Open "C:\bestand.txt" For Input As #1
                    Do Until EOF(1)
 
                    Input #1, Data
                   [COLOR="Red"]Text1.Text = Data[/COLOR]
        EOF (1)
        Loop
    Close

Is het nu niet zo dat hij wel alles doorloopt, maar de waarde constant overschrijft?
Probeer eens:

Text1.Text = Text1.Text & Data

Misschien kun je voor je 2e probleem de tekst trimmen?
volgens mij door:
Print #1, text1.text.Trim
 
Laatst bewerkt:
Print #1, text1.text.Trim
Doet het niet.

Text1.Text = Text1.Text & Data
Doet het ook niet zo goed. Alle woorden komen naast elkaar te staan. Terwijl ik in mijn txt bestand misschien wat meer regels heb neergezet.

Ik kan wel Text1.Text = Text1.Text & Data & vbcrlf
doen, maar dan heb je in mijn applicatie nog een dubbele vbcrlf (regel) En dat heb ik niet nodig. :P
 
Code:
Private Sub Form_Load()
Dim sData As String, sTmp As String

Open "c:\test.txt" For Input As #1
  Do While Not EOF(1)
    Input #1, sTmp
    sData = sData + sTmp + vbCrLf
  Loop
Close #1

Text1.Text = sData
End Sub

Het bovenstaande werkt hier zonder problemen. :)
 
Hij doet het goed!:thumb:

Heb je ook een oplossing voor het opslaan van txt bestanden? Die dubbele regel.
 
Iemand? Ik kan pas weer verder gaan met me source als ik de oplossing heb.
Ik sta te popelen :p
 
Je zou de data binair kunnen opslaan.

Code:
Private Sub Form_Load()
Dim s As String
Dim i As Integer

For i = 1 To 100
 s = s + "dit is regel " + CStr(i)
 If i < 100 Then
  s = s + vbCrLf
 End If
Next i


Open "c:\vbtest.txt" For Binary As #1
  Put #1, , s
Close #1
End Sub

Op bovenstaande manier heb je geen extra nieuwe regel.
 
Nee ik krijg geen extra nieuwe regel. Ik krijg honderden regels!

Als je "hoi" typt krijg je op een rij

hoi1
hoi2
hoi3,

Hij blijft maar doprgaan.....
 
Wat ik nodig heb is een manier, om gewoon op een normale manier EXACT je tekst opslaan in een path die ik heb opgegeven. Geen dubbele spatie of iets dergelijks.......
 
Nee ik krijg geen extra nieuwe regel. Ik krijg honderden regels!

Als je "hoi" typt krijg je op een rij

hoi1
hoi2
hoi3,

Hij blijft maar doprgaan.....

:rolleyes:

Mijn voorbeeld is precies wat jij zoekt.. alleen neem je m'n voorbeeld te letterlijk. (je hebt alleen het stuk voor het schrijven nodig :))
 
Oke ik snap hem. En hij doet nog stèèds niet wat ik wil Als je bijv een regel typt krijg je dit te zien aan het begin:  ;

Die 2 tekens...

En ik wil graag dat hij de tekst van een txt bestand replaced. Als ik over een txt heen schrijf zie je nog steeds de vorige text, met de nieuwe eroverheen :confused::confused::confused:
 
Die vreemde tekens maken verder niks uit als je de data maar correct kunt uitlezen. En over dat bestandje dat vervangen moet worden, ik denk dat je de stream ook wel kunt openen zodat hij een nieuw bestand maakt. Is een kwestie van zoeken.

En verder zou je anders natuurlijk eerst het bestand kunnen verwijderen voordat je de data logt.
 
Dat maakt wel wat uit. Mijn software opent die txt-jes als database. Dus alles moet perfect gladjes opgeslagen zijn en worden geopend.
 
Heb je niet iets anders zoals een backspace?
Zegmaar een VbCrlf die een regel terug gaat. Eentje die NIET een letter verwijderd, maar een regel. Dus misschien een hele zin, als het maar een regel is.
?
 
Je schrijft de data binair weg... probeer het nu ook eens binair in te lezen. Waarschijnlijk helpt dat wel. :)
 
dim s as string <=== maak van s een textvariable ( s="" )
dim i as integer <=== maak van i een getal ( i=0 )

For i = 1 To 100 <=== ga van 1 tot 100
s = s + "dit is regel " + CStr(i) <=== "" + "" dit is regel + textvariable(i) (99x)
If i < 100 Then <=== als i kleiner is dan 100 dan ...
s = s + vbCrLf <==== "" = "" + vbreturn (99x)
End If <=== einde als
Next i <=== einde for

kan wel eens kloppen dat ie 100x dezelfde regel geeft...

leg mij eens precies uit wat er nou niet goed is.
Ik snap niet wat je probeerd te maken.
 
dim s as string <=== maak van s een textvariable ( s="" )
dim i as integer <=== maak van i een getal ( i=0 )

For i = 1 To 100 <=== ga van 1 tot 100
s = s + "dit is regel " + CStr(i) <=== "" + "" dit is regel + textvariable(i) (99x)
If i < 100 Then <=== als i kleiner is dan 100 dan ...
s = s + vbCrLf <==== "" = "" + vbreturn (99x)
End If <=== einde als
Next i <=== einde for

kan wel eens kloppen dat ie 100x dezelfde regel geeft...

leg mij eens precies uit wat er nou niet goed is.
Ik snap niet wat je probeerd te maken.


Dat stukje postte ik als voorbeeld. Hij heeft problemen met het inlezen van het bestand. (en hij denkt problemen te hebben met het wegschrijven van de data)

Ik heb pas een nieuwe installatie en dus geen VB6. :)
 
Het klinkt misschien rediculess maar:
Ik ben bezig met het maken van een software die ook beschikt onder een accounting systeem.
Alle accounts worden opgeslagen in TXT's.

En ik wil geen, dubbele enter, en geen, 100 rijen,
Anders heeft het lezen er van geen nut.

Als ik een notepad maakte maakt het opzich niet veel uit. Maar txt's als server gebruiken moet heel preciesjes zijn.

Ik ben er van overtuigd dat dit "the" way is om als database te gebruiken.
 
Het klinkt misschien rediculess maar:
Ik ben bezig met het maken van een software die ook beschikt onder een accounting systeem.
Alle accounts worden opgeslagen in TXT's.

En ik wil geen, dubbele enter, en geen, 100 rijen,
Anders heeft het lezen er van geen nut.

Als ik een notepad maakte maakt het opzich niet veel uit. Maar txt's als server gebruiken moet heel preciesjes zijn.

Ik ben er van overtuigd dat dit "the" way is om als database te gebruiken.

*zucht*

www.begrijpendlezen.nl ?

Verder heeft het weinig nut om voorbeelden en/of hulp te bieden als je er zelf toch geen moeite in wilt steken. (ik kan het uiteraard fout hebben zoals in dat batchscript-topic; Maar naar mijn weten is er voldoende informatie gegeven om tot een oplossing te komen.)
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan