🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: be.comp.programming
16 messages
16 total messages Started by Bart Vanwijnsberghe Thu, 24 Oct 2002 20:03
VBA: LOF maximum lengte 2048 ?
#7006
Author: Bart Vanwijnsberghe
Date: Thu, 24 Oct 2002 20:03
22 lines
1946 bytes
Ik zou moeten een file inlezen in een tekstbox in Access XP. Ik heb daarvoor
volgende code:

Private Sub Form_Load()
    Dim file As String
    file = "D:\Mijn documenten\testAccess\test.html"
    Open file For Input As #1
    FileLength = LOF(1)
    Debug.Print FileLength
    mailtekst.SetFocus
    mailtekst.Text = Input(LOF(1), #1)
    Close
End Sub

LOF mag blijkbaar maar 2048 zijn.  Als er meer dan 2048 tekens zijn in mijn
bestand krijg ik de fout: "Fout 2176 tijdens uitvoering: De instelling voor
deze eigenschap is te lang".

Is er een andere mogelijkheid om een grotere file in te lezen ?

mvg
Bart
Re: LOF maximum lengte 2048 ?
#7010
Author: Egg
Date: Thu, 24 Oct 2002 21:04
42 lines
2478 bytes
"Bart Vanwijnsberghe" <bartvanwijnsberghe@DELETE!!SPAMyahoo.com> wrote in
message news:bmYt9.177078$8o4.28363@afrodite.telenet-ops.be...
> Ik zou moeten een file inlezen in een tekstbox in Access XP. Ik heb
daarvoor
> volgende code:

Echt niet!
Zie de verbeterde code.
ps: Input$ (of Input voor variantjes) is alleen voor binary data. Als je het
open 'for input' dan heb je inderdaad je limiet van 2048.
Als je regel voor regel wilt lezen gebruik je dus Line Input #hFile, sRegel$


> Private Sub Form_Load()
>     Dim file As String
>     file = "D:\Mijn documenten\testAccess\test.html"
Dim hFile as Integer
hFile = FreeFile
>     Open file For Binary As #hFile
>     FileLength = LOF(hFile)
>     Debug.Print FileLength
>     mailtekst.SetFocus
     mailtekst.Text = Input(LOF(1), #1)

Mailtext.Text = Input$(Lof(hFile))
Close #hFile


>     Close
> End Sub
>
> LOF mag blijkbaar maar 2048 zijn.  Als er meer dan 2048 tekens zijn in
mijn
> bestand krijg ik de fout: "Fout 2176 tijdens uitvoering: De instelling
voor
> deze eigenschap is te lang".
>
> Is er een andere mogelijkheid om een grotere file in te lezen ?
>
> mvg
> Bart
>
Re: LOF maximum lengte 2048 ?
#7008
Author: Bart Vanwijnsberghe
Date: Thu, 24 Oct 2002 21:38
34 lines
2343 bytes
"Egg"...
> "Bart Vanwijnsberghe"...
> > Ik zou moeten een file inlezen in een tekstbox in Access XP. Ik heb
> > daarvoor volgende code:
>
> Echt niet!
> Zie de verbeterde code.
> ps: Input$ (of Input voor variantjes) is alleen voor binary data. Als je
het
> open 'for input' dan heb je inderdaad je limiet van 2048.
> Als je regel voor regel wilt lezen gebruik je dus Line Input #hFile,
sRegel$
>
> > Private Sub Form_Load()
> >     Dim file As String
> >     file = "D:\Mijn documenten\testAccess\test.html"
> Dim hFile as Integer
> hFile = FreeFile
> >     Open file For Binary As #hFile
> >     FileLength = LOF(hFile)
> >     Debug.Print FileLength
> >     mailtekst.SetFocus
>      mailtekst.Text = Input(LOF(1), #1)
> Mailtext.Text = Input$(Lof(hFile))

Ik neem aan dat u hier iets vergeten was:     mailtekst.Text =
Input$(LOF(hFile), #hFile)

> Close #hFile

Maar verder dan 2048 geraak ik niet hoor.

mvg
Bart
Re: VBA: LOF maximum lengte 2048 ?
#7016
Author: Hace
Date: Fri, 25 Oct 2002 12:21
32 lines
1980 bytes
Bart Vanwijnsberghe schreef:

>Private Sub Form_Load()
>    Dim file As String
>    file = "D:\Mijn documenten\testAccess\test.html"
>    Open file For Input As #1
>    FileLength = LOF(1)
>    Debug.Print FileLength
>    mailtekst.SetFocus
>    mailtekst.Text = Input(LOF(1), #1)
>    Close
>End Sub
>Is er een andere mogelijkheid om een grotere file in te lezen ?

Je kunt de file per regel of per byte proberen in te lezen, door een
loopje te gebruiken en te testen op EOF (end of file).

Bijvoorbeeld iets als:

Open sFileName For Input As #1
Do While Not EOF(1)
  Line Input #1, strRegel
  mailtekst.Text = mailtekst.Text & strRegel
Loop
Close #1

Cheers,

-- 
  anti-rsi software at: http://hace.dyndns.org/files/rsibreakreminder/
  Learning to quote with outlook express:
  http://home.in.tum.de/~jain/software/quotefix.php
Re: LOF maximum lengte 2048 ?
#7018
Author: Egg
Date: Fri, 25 Oct 2002 12:21
59 lines
3186 bytes
"Bart Vanwijnsberghe" <bartvanwijnsberghe@DELETE!!SPAMyahoo.com> wrote in
message news:TLZt9.177174$8o4.28452@afrodite.telenet-ops.be...
> "Egg"...
> > "Bart Vanwijnsberghe"...
> > > Ik zou moeten een file inlezen in een tekstbox in Access XP. Ik heb
> > > daarvoor volgende code:
> >
> > Echt niet!
> > Zie de verbeterde code.
> > ps: Input$ (of Input voor variantjes) is alleen voor binary data. Als je
> het
> > open 'for input' dan heb je inderdaad je limiet van 2048.
> > Als je regel voor regel wilt lezen gebruik je dus Line Input #hFile,
> sRegel$
> >
> > > Private Sub Form_Load()
> > >     Dim file As String
> > >     file = "D:\Mijn documenten\testAccess\test.html"
> > Dim hFile as Integer
> > hFile = FreeFile
> > >     Open file For Binary As #hFile
> > >     FileLength = LOF(hFile)
> > >     Debug.Print FileLength
> > >     mailtekst.SetFocus
> >      mailtekst.Text = Input(LOF(1), #1)
> > Mailtext.Text = Input$(Lof(hFile))
>
> Ik neem aan dat u hier iets vergeten was:     mailtekst.Text =
> Input$(LOF(hFile), #hFile)

Zeg maar je tegen mij hoor! In NL voelen we ons oud als we 'u' tegen elkaar
zeggen (tenzij ik directeur van Philips ben of zo :) ).
Heb je je file echt for binary geopend?

Probeer anders dit... het is iets minder efficient maar ja, als het maar
werkt
ps: Wat voor OS en wat voor Office heb je? Die 2048 beperking lijkt me echt
incorrect. Input$ kan zelfs 1 a 2 MB data lezen....

    Dim hfile As Integer
    Dim btBytes() As Byte
    Dim sTemp As String
    hfile = FreeFile
    Open "c:\boot.ini" For Binary As #hfile
    ReDim btBytes(LOF(hfile) - 1)
    Get #hfile, , btBytes
    sTemp = StrConv(btBytes, vbUnicode)
    Close #hfile




> > Close #hFile
>
> Maar verder dan 2048 geraak ik niet hoor.
>
> mvg
> Bart
>
Re: VBA: LOF maximum lengte 2048 ?
#7024
Author: barvok
Date: Fri, 25 Oct 2002 18:21
48 lines
2313 bytes
In article <bmYt9.177078$8o4.28363@afrodite.telenet-ops.be>, 
bartvanwijnsberghe@DELETE!!SPAMyahoo.com says...
> Ik zou moeten een file inlezen in een tekstbox in Access XP. Ik heb daarvoor
> volgende code:
> 
> Private Sub Form_Load()
>     Dim file As String
>     file = "D:\Mijn documenten\testAccess\test.html"
>     Open file For Input As #1
>     FileLength = LOF(1)
>     Debug.Print FileLength
>     mailtekst.SetFocus
>     mailtekst.Text = Input(LOF(1), #1)
>     Close
> End Sub
> 
> LOF mag blijkbaar maar 2048 zijn.  Als er meer dan 2048 tekens zijn in mijn
> bestand krijg ik de fout: "Fout 2176 tijdens uitvoering: De instelling voor
> deze eigenschap is te lang".
> 
> Is er een andere mogelijkheid om een grotere file in te lezen ?
> 
> mvg
> Bart
> 
> 
je zou dit kunnen doen met het FileSystemObject
Leg een reference naar Microsoft Scripting Runtime (scrrun.dll)
dan...
Function GetFile as string
	dim fs as new filesystemobject
	dim ts as textstream
	dim strTekst as string

	set ts=fs.opentextfile("mijnfile.txt")
	do until ts.atendofstream
		strtekst = ts.readline			
	loop

	getfile = strtekst	
	ts.close
	set ts=nothing
	set fs=nothing
end Sub

Probeer dit eens?

mvg, K.
Re: LOF maximum lengte 2048 ?
#6961
Author: Bart Vanwijnsberghe
Date: Mon, 28 Oct 2002 18:54
23 lines
2176 bytes
"Egg"...
> Probeer anders dit... het is iets minder efficient maar ja, als het maar
> werkt
> ps: Wat voor OS en wat voor Office heb je? Die 2048 beperking lijkt me
> echt incorrect. Input$ kan zelfs 1 a 2 MB data lezen....

Win2000, OfficeXP

>     Dim hfile As Integer
>     Dim btBytes() As Byte
>     Dim sTemp As String
>     hfile = FreeFile
>     Open "c:\boot.ini" For Binary As #hfile
>     ReDim btBytes(LOF(hfile) - 1)
>     Get #hfile, , btBytes
>     sTemp = StrConv(btBytes, vbUnicode)
>     Close #hfile

Als ik dit probeer krijg ik de foutmelding: "Fout 52 tijdens uitvoering:
Ongeldige bestandsnaam of ongeldig bestandsnummer"

mvg
Bart
Re: VBA: LOF maximum lengte 2048 ?
#6965
Author: Bart Vanwijnsberghe
Date: Mon, 28 Oct 2002 18:55
14 lines
1790 bytes
"Hace"...
> Je kunt de file per regel of per byte proberen in te lezen, door een
> loopje te gebruiken en te testen op EOF (end of file).
> 
> Bijvoorbeeld iets als:
> 
> Open sFileName For Input As #1
> Do While Not EOF(1)
>   Line Input #1, strRegel
>   mailtekst.Text = mailtekst.Text & strRegel
> Loop
> Close #1

Dat werkt ook niet, zelfde foutmelding :-(
Re: VBA: LOF maximum lengte 2048 ?
#6967
Author: Bart Vanwijnsberghe
Date: Mon, 28 Oct 2002 18:55
28 lines
2107 bytes
"barvok"...
> je zou dit kunnen doen met het FileSystemObject
> Leg een reference naar Microsoft Scripting Runtime (scrrun.dll)
> dan...
> Function GetFile as string
> dim fs as new filesystemobject
> dim ts as textstream
> dim strTekst as string
> 
> set ts=fs.opentextfile("mijnfile.txt")
> do until ts.atendofstream
> strtekst = ts.readline 
> loop
> 
> getfile = strtekst 
> ts.close
> set ts=nothing
> set fs=nothing
> end Sub
> 
> Probeer dit eens?

Ook hier krijg ik dezelfde foutmelding, vanaf meer dan 2048 tekens :-(
-- 
Bart Vanwijnsberghe
http://www.lightning.be
MSN: b_vanwijnsberghe@hotmail.com
ICQ: 49454469
Re: LOF maximum lengte 2048 ?
#6962
Author: Bart Vanwijnsberghe
Date: Mon, 28 Oct 2002 19:00
27 lines
2370 bytes
"Bart Vanwijnsberghe"...
> Ik zou moeten een file inlezen in een tekstbox in Access XP. Ik heb
daarvoor
> volgende code:
>
> Private Sub Form_Load()
>     Dim file As String
>     file = "D:\Mijn documenten\testAccess\test.html"
>     Open file For Input As #1
>     FileLength = LOF(1)
>     Debug.Print FileLength
>     mailtekst.SetFocus
>     mailtekst.Text = Input(LOF(1), #1)
>     Close
> End Sub

Als ik dezelfde code gebruik als hier boven, maar die tekstbox vervang door
een rich text box dan lukt het mij wel om bestanden van meer dan 2048 tekens
in te lezen, maar als ik dan die tekstbox in een string steek om een woord
in te zoeken dan krijg ik allemaal rare tekens, die waarschijnlijk eigen
zijn aan het rich text formaat.  Op het scherm in die rich text box krijg ik
wel de juiste weergave van de tekst uit mijn bestand.

Iemand enig idee hoe ik die tekens van rich text wegkrijg in een string ?
vb van zo'n rich textbox: / par, {
mvg
Bart
Re: LOF maximum lengte 2048 ?
#6964
Author: Egg
Date: Mon, 28 Oct 2002 20:24
25 lines
2388 bytes
"Bart Vanwijnsberghe" <bartvanwijnsberghe@DELETE!!SPAMyahoo.com> wrote in
message news:IJfv9.183280$8o4.29129@afrodite.telenet-ops.be...
> "Egg"...
>
> >     Dim hfile As Integer
> >     Dim btBytes() As Byte
> >     Dim sTemp As String
> >     hfile = FreeFile
> >     Open "c:\boot.ini" For Binary As #hfile
> >     ReDim btBytes(LOF(hfile) - 1)
> >     Get #hfile, , btBytes
> >     sTemp = StrConv(btBytes, vbUnicode)
> >     Close #hfile
>
> Als ik dit probeer krijg ik de foutmelding: "Fout 52 tijdens uitvoering:
> Ongeldige bestandsnaam of ongeldig bestandsnummer"
Bart,

Je hebt toch hopelijk wel boot.ini vervangen door iets anders?
Even iets meer proberen graag voordat je post. Ik weet namelijk heel zeker,
met jouw config (win2000 office XP) dat het moet kunnen werken inclusief de
Input$ functie met een binary open statement.

> mvg
> Bart
Re: LOF maximum lengte 2048 ?
#6969
Author: Bart Vanwijnsberghe
Date: Mon, 28 Oct 2002 20:34
30 lines
2660 bytes
"Egg"...
> "Bart Vanwijnsberghe"...
> > "Egg"...
> > >     Dim hfile As Integer
> > >     Dim btBytes() As Byte
> > >     Dim sTemp As String
> > >     hfile = FreeFile
> > >     Open "c:\boot.ini" For Binary As #hfile
> > >     ReDim btBytes(LOF(hfile) - 1)
> > >     Get #hfile, , btBytes
> > >     sTemp = StrConv(btBytes, vbUnicode)
> > >     Close #hfile
> >
> > Als ik dit probeer krijg ik de foutmelding: "Fout 52 tijdens uitvoering:
> > Ongeldige bestandsnaam of ongeldig bestandsnummer"
> Bart,
>
> Je hebt toch hopelijk wel boot.ini vervangen door iets anders?
> Even iets meer proberen graag voordat je post. Ik weet namelijk heel
zeker,
> met jouw config (win2000 office XP) dat het moet kunnen werken inclusief
de
> Input$ functie met een binary open statement.

Ja ik heb die boot.ini vervangen door mijn bestand.
Heb heel het weekend aantal zaken geprobeerd op mijn pc thuis (WinMe, Office
XP) en het internet afgezocht, en telkens wordt mijn eerste code
weergegeven, maar bijna nergens wordt iets vermeld over maximum 2048 tekens

Bart
Re: LOF maximum lengte 2048 ?
#6974
Author: Egg
Date: Tue, 29 Oct 2002 10:02
37 lines
2836 bytes
"Bart Vanwijnsberghe" <bartvanwijnsberghe@DELETE!!SPAMyahoo.com> wrote in
message news:Sbhv9.183488$8o4.29231@afrodite.telenet-ops.be...
> "Egg"...
> > "Bart Vanwijnsberghe"...
> > > "Egg"...
> > > >     Dim hfile As Integer
> > > >     Dim btBytes() As Byte
> > > >     Dim sTemp As String
> > > >     hfile = FreeFile
> > > >     Open "c:\boot.ini" For Binary As #hfile
> > > >     ReDim btBytes(LOF(hfile) - 1)
> > > >     Get #hfile, , btBytes
> > > >     sTemp = StrConv(btBytes, vbUnicode)
> > > >     Close #hfile
> > >
> > > Als ik dit probeer krijg ik de foutmelding: "Fout 52 tijdens
uitvoering:
> > > Ongeldige bestandsnaam of ongeldig bestandsnummer"
> > Bart,


Geloof me,
Het is niet waar. Dan moet er toch ook een lampje bij je gaan branden? Ook
al omdat er geen enkel document over te vinden is.
Ik vermoed, tactvol gezegd, dat er iets met je code niet ok is of dat je PC
dankzij een virus checker of onjuiste installatie niet helemaal ok werkt.


> Ja ik heb die boot.ini vervangen door mijn bestand.
> Heb heel het weekend aantal zaken geprobeerd op mijn pc thuis (WinMe,
Office
> XP) en het internet afgezocht, en telkens wordt mijn eerste code
> weergegeven, maar bijna nergens wordt iets vermeld over maximum 2048
tekens
>
> Bart
>
Re: LOF maximum lengte 2048 ?
#6981
Author: Bart Vanwijnsberghe
Date: Tue, 29 Oct 2002 17:57
29 lines
2567 bytes
"Egg"...
> Geloof me,
> Het is niet waar. Dan moet er toch ook een lampje bij je gaan branden? Ook
> al omdat er geen enkel document over te vinden is.
> Ik vermoed, tactvol gezegd, dat er iets met je code niet ok is of dat je
PC
> dankzij een virus checker of onjuiste installatie niet helemaal ok werkt.

Mijn excuses, er zat idd een typfout in.  anyway, de fout : "Fout 2176
tijdens uitvoering: De instelling voor deze eigenschap is te lang" blijf ik
krijgen, als ik die string wegschrijf naar mijn Tekstbox.

Dim hfile As Integer
Dim btBytes() As Byte
Dim sTemp As String
hfile = FreeFile
Open "D:\Mijn documenten\testAccess\test.html" For Binary As #hfile
ReDim btBytes(LOF(hfile) - 1)
Get #hfile, , btBytes
sTemp = StrConv(btBytes, vbUnicode)
mailtekst.Text = sTemp
Close #hfile

Bart
--
Bart Vanwijnsberghe
http://www.lightning.be
MSN: b_vanwijnsberghe@hotmail.com
ICQ: 49454469
Re: LOF maximum lengte 2048 ?
#6920
Author: Huibert
Date: Sat, 02 Nov 2002 21:49
37 lines
2598 bytes
Die rare tekens verhinderen niet het zoeken naar de tekst in de string!!

Huibert

"Bart Vanwijnsberghe" <bartvanwijnsberghe@DELETE!!SPAMyahoo.com> wrote in
message news:1Pfv9.183302$8o4.29163@afrodite.telenet-ops.be...
> "Bart Vanwijnsberghe"...
> > Ik zou moeten een file inlezen in een tekstbox in Access XP. Ik heb
> daarvoor
> > volgende code:
> >
> > Private Sub Form_Load()
> >     Dim file As String
> >     file = "D:\Mijn documenten\testAccess\test.html"
> >     Open file For Input As #1
> >     FileLength = LOF(1)
> >     Debug.Print FileLength
> >     mailtekst.SetFocus
> >     mailtekst.Text = Input(LOF(1), #1)
> >     Close
> > End Sub
>
> Als ik dezelfde code gebruik als hier boven, maar die tekstbox vervang
door
> een rich text box dan lukt het mij wel om bestanden van meer dan 2048
tekens
> in te lezen, maar als ik dan die tekstbox in een string steek om een woord
> in te zoeken dan krijg ik allemaal rare tekens, die waarschijnlijk eigen
> zijn aan het rich text formaat.  Op het scherm in die rich text box krijg
ik
> wel de juiste weergave van de tekst uit mijn bestand.
>
> Iemand enig idee hoe ik die tekens van rich text wegkrijg in een string ?
> vb van zo'n rich textbox: / par, {
> mvg
> Bart
>
Re: VBA: LOF maximum lengte 2048 ?
#6921
Author: Hace
Date: Sun, 03 Nov 2002 11:02
41 lines
2323 bytes
Bart Vanwijnsberghe schreef:

>> Je kunt de file per regel of per byte proberen in te lezen, door een
>> loopje te gebruiken en te testen op EOF (end of file).
>> 
>> Bijvoorbeeld iets als:
>> 
>> Open sFileName For Input As #1
>> Do While Not EOF(1)
>>   Line Input #1, strRegel
>>   mailtekst.Text = mailtekst.Text & strRegel
>> Loop
>> Close #1
>
>Dat werkt ook niet, zelfde foutmelding :-(

Huh? Vreemd. Wat voor bestand lees je eigenlijk in? Is het een
binary-bestand ipv een tekst-bestand soms? Zo ja: waarom wil je een
binary bestand in een tekstbox plaatsen?


dim reclength as long
reclength = 1
Dim filenumber As Long
filenumber = FreeFile
Dim dummy As Byte

' lees in byte voor byte   
Open m_strFile For Random As filenumber Len = reclength
    For x = 0 to filesize(m_strFile)
        Get filenumber, x, dummy
        ' doet iets met dummy...
    Next x
close filenumber



-- 
  anti-rsi software at: http://hace.dyndns.org/files/rsibreakreminder/
  Learning to quote with outlook express:
  http://home.in.tum.de/~jain/software/quotefix.php
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads