Avatar billede simon_jacobsen Nybegynder
23. september 2001 - 11:20 Der er 20 kommentarer og
1 løsning

load textfil

hvordan loader jeg denne tekst www.brinkster.com\\scaccess\\test.htm
jeg kan ikke rigtig for et program til at loade filen ordenligt
til at loade filen bruger jeg disse koder :
Private Sub Command1_click()
Dim nr
nr = \"0\"
On Error Resume Next
  CommonDialog1.ShowOpen
    Dim intFreeFile As Integer
    Dim strTemp As String
    intFreeFile = FreeFile
    Open CommonDialog1.FileName For Input As #2
for nr = 0 to 7
    Input #2, linier(nr)
next
    Close #2
dim tal
for tal = 0 to 7
    MsgBox \"linier(\" & nr & \") \" & linier(nr)
End Sub

jeg ved godt at der ikke kun er 7 linjer men den vil ikke loade alle linjernes fulde indhold
hvis det ikke kan lade sig gøre at loade en text med så mange mærkelige tegn er der ikke en der kan fortælle mig hvilke tegn den ikke kan loade (jeg er lige glad med at den nogen gange skriver firkant fordi den ikke kan vise symbolet)
på forhånd tak :)
Avatar billede cellaneous Nybegynder
23. september 2001 - 12:07 #1
kaffe har besvaret et spørgsmål med præcis samme overskrift for kort tid siden, er ekspertens søgefunktion så dårlig at du ikke så hans svar da du selv forsøgte at finde svaret eller hvorfor kunne du ikke bruge det?

er problemet at fin fil ikke eksisterer på serveren? at brugeren af dit program ikke er online?

anyway, så er der nogle ting i din kode som kan give mig knopper. For det første må du ALDRIG skrive open uden at skrive close! dernæst blander du FreeFile ind i det men ignorer den og kalder fil nummer 2 istedet, og så putter du strengvariablen \"0\" ind i nr selvom du senere vil bruge samme variabel til at holde tal?
Kig lige på det her:

Dim linier(0 To 7) As String

Private Sub Command1_click()
Dim nr As Integer
Dim intFreeFile As Integer

On Error Resume Next
    CommonDialog1.ShowOpen
    intFreeFile = FreeFile
    Open CommonDialog1.filename For Input As #intFreeFile
        For nr = 0 To 7
            Input #intFreeFile, linier(nr)
            MsgBox linier(nr) & \" (\" & nr & \")\"
        Next
    Close #intFreeFile
End Sub
Avatar billede cellaneous Nybegynder
23. september 2001 - 12:10 #2
ps jeg ved ikke hvad du mener med \"en text med så mange mærkelige tegn\" da jeg ikke kan åbne www.brinkster.com\\scaccess\\test.htm men jeg vil tro du får firkanter hvis du har chr$(13) og den slags i din fil, eller hvis brugeren ikke har samme skrifttype som dig og du bruger ø til en med amerikans font?
Avatar billede cellaneous Nybegynder
23. september 2001 - 12:16 #3
pps jeg kan se du ikke har så mange points, og hvis mit svar var det eneste du havde brug for er det bestemt *ikke* 60 points værd - så jeg vil foreslå du selv svarer på spørgsmålet og tager dine points tilbage :-)
Avatar billede simon_jacobsen Nybegynder
23. september 2001 - 13:27 #4
undskyld
www24.brinkster.com/scaccess/test.htm
Avatar billede sjh Nybegynder
23. september 2001 - 17:52 #5
skal du Download \"www24.brinkster.com/scaccess/test.htm\" ?
Avatar billede cellaneous Nybegynder
23. september 2001 - 17:54 #6
hmn det ser godt nok mystisk ud :-)

For at finde ud af hvad der vises som firkanter, vil jeg anbefale dig at smække en text1.text med multiline = true på din form og prøve det her i koden på en knap:

Dim x As String * 1
Dim filnavn As String
filnavn = CommonDialog1.filename
Open filnavn For Binary Access Read As #1
    For I = 0 To LOF(1)
        Get #1, I + 1, x
        firkanttest = MsgBox(x & \" er ascii nummer \" & Asc(x) & \". Er dette en firkant?\", vbYesNo, \"byte nummer \" & I & \" af\" & LOF(1))
        If firkanttest = 6 Then Text1.Text = Text1.Text & \" \" & Str(Asc(x))
    Next I
Close #1

hvis det er firkanterne du hentyder til i \"hvilke tegn den ikke kan loade\"? for jeg får linierne i fulde indhold så vidt jeg kan se?
Avatar billede cellaneous Nybegynder
23. september 2001 - 17:55 #7
sjh > kan man vælge en fil fra nettet vha en commondialog? kan ikke lige gennemskue det :-)
Avatar billede simon_jacobsen Nybegynder
23. september 2001 - 20:31 #8
det er bare en tekstfil, hvor der står den tekst i, men den vil ikke loade alle de mærkelige tegn.
så når man loader den, får man ikke altid vist hele linien, der er nogen tegn der bliver taget som stop på linien, Eller noget i den retning ? 
Avatar billede sjh Nybegynder
23. september 2001 - 22:24 #9
cellaneous >>Nej ;)

Avatar billede supermother Nybegynder
24. september 2001 - 13:02 #10
Private Sub Open_Click()
Dim i As String
Dim text As String
On Error GoTo fejl
CommonDialog1.CancelError = True
CommonDialog1.Filter = \"Alle Filer (*.*) | *.* | Tekst Dokumenter (*.txt) | *.txt\"
CommonDialog1.InitDir = \"e:\\documents and settings\\all users\\dokumenter\\\"
CommonDialog1.Flags = cdlOFNHideReadOnly
CommonDialog1.ShowOpen
i = FreeFile
Open CommonDialog1.FileName For Input As #i
txtText.text = Input(LOF(i), i)
Close #i
fejl:
End Sub
Avatar billede cellaneous Nybegynder
24. september 2001 - 13:23 #11
simon >

tja hvis et af dine tegn er chr$(13) kunne det jo godt lave ny linie - og jeg fandt vist et tabulatortegn i din tekst også, hvis det er hvad du kalder \"stop på linien\"
men kan du give et eksempel på hvilken linje det er du får og hvad du vil have istedet, altså et konkret eksempel på fejlen (det er svært for mig at se hvor fejlen er og hvad den består i)?
ved du på forhånd hvor lang \"en linie\" er (så kunne du jo bare tage det antal tegn ad gangen og vise istedetfor)?



supermother >

hvordan mener du at dit kodeeksempel lader en vide hvad der står på hvilken linie, og hvordan ser du antallet af liier? For mig at se åbner du bare filen på traditionel vis, og det simon vil er åbenbart at styre det linievis.
Avatar billede simon_jacobsen Nybegynder
24. september 2001 - 13:32 #12
cellaneous >
jeg ved ikke om du har prøvet at loade teksten, men der var nogle linier hvor kun halvdelen blev vist i msgboxen, jeg ved ikke hvad grunden var, men da jeg gik ind i \"dos editor\" og slettede tegnet det første tegn den ikke kunne vise kunne den loade hele linien ??? 
Avatar billede cellaneous Nybegynder
24. september 2001 - 14:16 #13
hvilke linier var det der kun blev vist halvdelen af (skal lige prøve at gennemgå det igen og se om jeg kan finde det, men et hint vil blive påskønnet)?

det tegn som du slettede, ved du evt hvilken ascii værdi det havde (brug evt \"firkanttest\" eksemplet for at finde ud af det)?
Avatar billede cellaneous Nybegynder
24. september 2001 - 15:16 #14
kan du bruge det her til noget?

Private Sub Command3_Click()

Dim x As String * 1
Dim filnavn As String
Dim intFreeFile As Integer
Dim antal As Integer

CommonDialog1.ShowOpen
filnavn = CommonDialog1.filename
If filnavn = \"\" Then Exit Sub
intFreeFile = FreeFile

Open filnavn For Binary Access Read As #intFreeFile
    For i = 0 To LOF(1)
        Get #intFreeFile, i + 1, x
        If x = Chr$(10) Then
            \'gør ingenting - linjeskift på vej
        ElseIf x = Chr$(13) Then
            \'linjeskift er her
            MsgBox Text1.text, 0, \"linie nummer \" & antal
            antal = antal + 1
            \'tøm tekstboksen så vi kan skrive på ny linie
            Text1.text = \"\"
        Else
            \'skriv videre på samme linie
            Text1.text = Text1.text & x
        End If
    Next i
Close #intFreeFile

End Sub
Avatar billede cellaneous Nybegynder
24. september 2001 - 15:23 #15
den laver ihvertfald noget andet med linie 4 (eller den femte faktisk for der er jo også en linie 0) så vidt jeg kan se i forhold til den jeg beskrev på 23/09 2001 12:07:54 men *hvorfor* ved jeg faktisk ikke rigtigt...
Avatar billede cellaneous Nybegynder
24. september 2001 - 15:28 #16
øv nej det er bare fordi den her metode ikke tror et komma er et linjeskift :-( troede ellers lige jeg havde fået hul på noget... *tænke*
Avatar billede supermother Nybegynder
25. september 2001 - 08:29 #17
txttext er navnet på en tekstbox.
Allé linjer i filen bliver skrevet i tekstboxen
Avatar billede cellaneous Nybegynder
25. september 2001 - 11:28 #18
supermother >

så du kan godt se at det er et skiodt svar fordi du hverken nummererer linierne eller tilnærmelsesvis kommer i nærheden af det simon beskriver således:

for tal = 0 to 7
    MsgBox \"linier(\" & nr & \") \" & linier(nr)
End Sub
Avatar billede simon_jacobsen Nybegynder
06. oktober 2001 - 11:14 #19
jeg giver dig pointene cellaneous , for et igen rigtig godt svar :)
jeg kunne vel ikke få dit icq nummer du kan jo svare på alt hvad jeg spørger om :D
Avatar billede cellaneous Nybegynder
08. oktober 2001 - 20:06 #20
:-P er ikke mgeet for icq men send mig bare en mail hvis du har lyst kkgnsdlkng@hotmail.com
Avatar billede simon_jacobsen Nybegynder
09. oktober 2001 - 09:43 #21
det vil jeg gøre, selvom du selvfølgelig ikke skal gå glip af dine velfortjente point, hvis jeg for svar på nogle spørgsmål :)
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