Avatar billede fun22 Nybegynder
27. juni 2005 - 18:46 Der er 4 kommentarer og
1 løsning

Læse en txt fil

Hej

Hvordan læser jeg alt fra en txt fil på når to ord? Ordene skal slettes fra den "streng" der bliver lavet..

Hvordan gøres det?
Avatar billede hells Nybegynder
27. juni 2005 - 19:15 #1
Jeg går ud fra, at det er det sidste, der er problemet. Følgende fjerner tegnene efter det andetsidste mellemrum:
<%
streng = "Tekst med vel nok en hel del ord hentet fra en tekstfil, af hvilke de to sidste skal fjernes."

'Del strengen op i et array ved hvert mellemrum:
strengarr = Split(streng, " ")
'Sæt de to sidste ord lig "":
strengarr(UBound(strengarr)) = ""
strengarr(UBound(strengarr)-1) = ""
'Sæt tekstværdien for streng lig det første ord fra strengen:
streng = strengarr(0)
'Sæt resten af ordene sammen med mellemrum:
For i = 1 to UBound(strengarr) - 2
    streng = streng & " " & strengarr(i)
Next
%>
Avatar billede thesurfer Nybegynder
27. juni 2005 - 20:00 #2
Hvordan læser du filen? Jeg tror at der er en nemmere måde at gøre det på, end at skulle lave arrays..

/theSurfer
Avatar billede thesurfer Nybegynder
27. juni 2005 - 20:06 #3
Her læses filen, og samtidigt fjernes de sidste 2 ord (dvs, de sker løbende unden ekstra kode):

dim fso, fil, tmp, udskrift ' dimme variablerne

Set fso = CreateObject("Scripting.FileSystemObject") ' oprettet FileSystemObject (kræves for at læse filer)
set fil = fso.OpenTextFile(server.mappath("fil.txt"), 1) ' henvisning til filen der skal læses

do while not fil.atEndOfStream ' forsætter så længe at vi ikke er nået til slutningen

tmp = fil.readline ' læs 1 linie

if fil.atEndOfStream = True Then ' er vi nået til slutningen?

    ' vi er nået til slutningen af filen, fjern de sidste 2 ord:
  tmp = Left(tmp, InStrRev(Line, " ") - 1) ' fjern det sidste ord
  tmp = Left(tmp, InStrRev(Line, " ") - 1) ' fjern det sidste ord

end if

udskrift = udskrift + tmp ' tilføj den nuværende linie, til variablen: udskrift
loop

Det rettede indhold, er nu gemt i variablen: udskrift
Hvis du vil, gemmer du bare indholdet af variablen, i samme fil (overskriver).

/theSurfer
Avatar billede thesurfer Nybegynder
27. juni 2005 - 20:22 #4
Der var en fejl (eller to) i mit tidligere indlæg.. her er koden der virker:

<%
dim fso, fil, tmp, udskrift ' dimme variablerne

Set fso = CreateObject("Scripting.FileSystemObject") ' oprettet FileSystemObject (kræves for at læse filer)
set fil = fso.OpenTextFile(server.mappath("fil.txt"), 1) ' henvisning til filen der skal læses

do while not fil.atEndOfStream ' forsætter så længe at vi ikke er nået til slutningen

tmp = fil.readline ' læs 1 linie

if fil.atEndOfStream = True Then ' er vi nået til slutningen?

    ' vi er nået til slutningen af filen, fjern de sidste 2 ord:
  tmp = Left(tmp, InStrRev(tmp, " ") - 1) ' fjern det sidste ord
  tmp = Left(tmp, InStrRev(tmp, " ") - 1) ' fjern det sidste ord

end if

udskrift = udskrift + tmp ' tilføj den nuværende linie, til variablen: udskrift
loop


' her gemmes indholdet i filen igen:
set fil = fso.OpenTextFile(server.mappath("fil.txt"), 2) ' henvisning til filen der skal læses
fil.write(udskrift) ' skriv til filen
fil.close ' luk filen

set fil = nothing
set fso = nothing


'' Hvis du vil læse filen igen, fjern '-tegnene:

' set fil = fso.OpenTextFile(server.mappath("fil.txt"), 1) ' henvisning til filen der skal læses
' response.write fil.readall
' fil.close

%>

/theSurfer
Avatar billede fun22 Nybegynder
28. juni 2005 - 18:19 #5
Okay tak skal i have ;)
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
Kurser inden for grundlæggende programmering

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