Avatar billede niels_kristian Nybegynder
01. oktober 2005 - 17:31 Der er 12 kommentarer og
1 løsning

Open forBinary Access Read virker kun med hardcode

jeg har denne funktion:

Private Sub SendData(sFile As String)

    Dim ifreefile As Integer
    Dim lRead As Long, lLen As Long, lThisRead As Long, lLastRead As Long
    Dim fso As New FileSystemObject
    ifreefile = FreeFile
    Dim filen As String
   
    ' Open file for binary access:
    Open sFile For Binary Access Read As #ifreefile

Når jeg køre det får jeg fejlen File not found .. selv om sFile har den rigtigt værdig men hvis jeg skrive den værdi direkte ind i koden virker det godt nok.. nogle der ved hvad der er galt?
Avatar billede joern Nybegynder
01. oktober 2005 - 19:57 #1
Hej.

Det er sikkert et problem med stien.  Hvis din kildetekst ikke er kopileret endnu, vil pointeren ikke nødvendigvis stå på den mappe, hvor kildeteksten ligger. 

Kopilér kildeteksten og indsæt App.Path og backslash foran filnavnet (variablen, der indeholder filnavnet).

M.v.h. Jørn
Avatar billede kabbak Professor
01. oktober 2005 - 19:58 #2
Open """ & sFile & """  For Binary Access Read As #ifreefile
Avatar billede niels_kristian Nybegynder
01. oktober 2005 - 21:41 #3
hej jørn

tror ikke det er problemet da jeg ikke bruger App.Path
Avatar billede niels_kristian Nybegynder
01. oktober 2005 - 21:42 #4
kabbak - Stadig samme felj
Avatar billede kabbak Professor
01. oktober 2005 - 22:01 #5
Open Chr(34) & sFile & Chr(34)  For Binary Access Read As #ifreefile
den burde være det samme som den anden.

Jeg mener at fejlen er, at du har mellemrum i stien til filen.
Avatar billede niels_kristian Nybegynder
01. oktober 2005 - 23:02 #6
har prøvet det du skriver og at bruge trim men stadig sammen fejl.
Open Chr(34) & Trim(sFile) & Chr(34) For Binary Access Read As #ifreefile
Avatar billede sjh Nybegynder
02. oktober 2005 - 01:26 #7
prøv at lave en test for at se hvad der står i den.. Det kan godt være der er et Chr(0) men det kan man ikke se hvis man bruger en TextBox derfor brug Me.Print..

Private Sub SendData(sFile As String)
  Me.AutoRedraw = True
  Me.Print sFile ' Udskriver på Form
End Sub
Avatar billede niels_kristian Nybegynder
02. oktober 2005 - 13:44 #8
burde min Trim ikke fjerne mellemrum?
Avatar billede sjh Nybegynder
02. oktober 2005 - 13:47 #9
Jo men ikke Chr(0)
Avatar billede sjh Nybegynder
02. oktober 2005 - 13:49 #10
og den fjerner kun mellemrum først og sidst i en string.. altså ikke "noget      noget"
Avatar billede niels_kristian Nybegynder
02. oktober 2005 - 14:07 #11
Ja.. det her får jeg ud hvis jeg skriver det til en txt fil:
c:\test1.txt                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      c:\test2.txt                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
lidt svært at se .. men er meget mellemrum i .. hvordan fjerne jeg dette?
Avatar billede niels_kristian Nybegynder
02. oktober 2005 - 14:11 #12
sådan:
  filen = CStr(sFile)

    Open Trim(filen) For Binary Access Read As #ifreefile
Avatar billede sjh Nybegynder
02. oktober 2005 - 14:15 #13
Ja ellers skal du bare lave din egen trim..

hvis jeg ikke har fået alle tegn med.. kan du selv tilføje dem..


Public Function MyTrim(strText As String) As String
Dim i As Integer
Dim strOne As String
Dim strOut As String
  For i = 1 To Len(strText)
    strOne = Mid$(strText, i, 1)
    Select Case LCase$(strOne)
          Case "a" To "z", "0" To "9", "æ", "ø", "å", " "
            strOut = (strOut & strOne)
          Case ":", "\", "/", "-", "_", ".", ",", "'", "~", "#"
            strOut = (strOut & strOne)
          Case "(", ")", "[", "]", "{", "}"
            strOut = (strOut & strOne)
    End Select
  Next
  MyTrim = Trim$(strOut)
End Function
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