Avatar billede Dan Elgaard Ekspert
02. maj 2008 - 12:50 Der er 5 kommentarer og
1 løsning

UDF til at læse .TXT fil

Er der nogen, der kan hjælpe mig med at lave en UDF i VBA, der læser en given text-fil (.TXT)?
Jeg forestiller mig noget i retning af:

=ReadTXTFile("D:\\Logs\Today.TXT")

Funktionen skal primært bruges i anden VBA-kode, så den behøver strengt taget ikke virke i selve regnearket, men det vil da være rart, hvis den gjorde :-)

Jeg ved, at VBA-string variabler kun kan indeholde 65.535 karakterer, så funktionen skal selvfølgelig tage højde for dette, og ikke gå i stå med en fejl, hvis tekst-filen er større end dette, men så blot tage de første 65.535 karakterer i tekst-filen.

Man kunne måske udvide UDF'en til:
=ReadTXTFile("D:\\Logs\Today.TXT"; AntalTegn)

...hvor antal tegn er 'optional', og hvis ikke angivet, så henter funktionen f.eks. automatisk kun de først 1.000 tegn i tekst-filen.

Jeg er MEGET taknemmelig, hvis dette kunne lade sig gøre, og synes selv spørgsmålet er mindst 400 point værd, så løser du dette for mig, laver jeg et ekstra spørgsmål med 200 point, som du bare kan ligge et svar til ;-)
Avatar billede mugs Novice
02. maj 2008 - 14:37 #1
Avatar billede kabbak Professor
02. maj 2008 - 15:20 #2
Public Sub HentFil()
Dim strContent As Variant, strFile As String
strFile = "c:\\test.txt"

        Open strFile For Input As #1
            strContent = Input$(LOF(1), 1)
        Close #1
  ' du har nu hele filen i variablen strContent
End Sub
Avatar billede Dan Elgaard Ekspert
02. maj 2008 - 15:41 #3
Heh heh :-)

Du kom mig selv i forkøbet, da jeg selv i mellemtiden havde fundet frem til Open-For-Input...

Din funktion er dog ikke helt perfekt, da den for det første slet ikke er en funktion, og for det andet giver fejl, hvis du åbner mere end en tekst-fil!
Desuden mangler den muligheden for at fange fejl på tekst-størrelsen, og mulighed for at sætte, hvor meget af tekst-filen, du vil have læst :-)

Men, jeg har nu selv fået lavet mig min funktion, som dels tager højde for at ovenstående, og som osse giver mulighed for at angive linier, fremfor størrelse, og mulighed for at 'rense' teksten for lavniveaukoder og andre tegn, der ikke kan udskrives :-)

Så alt i alt er jeg tilfreds, så no problem - smid et svar, og du får dine point :-)

Tusind tak for hjælpen .-)
Avatar billede Dan Elgaard Ekspert
02. maj 2008 - 15:42 #4
Du finder dine ekstra point her:

http://www.eksperten.dk/spm/830017
Avatar billede kabbak Professor
02. maj 2008 - 16:09 #5
et svar ;-))

Maks point er 200, så jeg kan ikke modtage flere, tag selv de andre , som du henviser til.
Avatar billede Dan Elgaard Ekspert
02. maj 2008 - 18:21 #6
Fair nok, but I owe U one :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester