Avatar billede joergen_vinther Nybegynder
12. juni 2006 - 18:12 Der er 13 kommentarer og
1 løsning

Prøblemer ved indlæs Fil.

Spørgsmål til supereksperter.

Jeg har utallige gange anvendt nedenstående rutine til indlæsning af en billedfil. Da jeg nu igen skal bruge rutinen, melder VB: "Rum-time error 458: Variable uses an Automation type not supported in Visual Basic".
Jeg har naturligvis kontrolleret, at jeg har skrevet rigtigt. Jeg har ikke ændret på VBs opsætning.
Kan nogen lede mig på sporet af, hvad der er galt ?

Open "Kupon1.bmp" For Binary As #1
  F = 1
  Do While EOF(1) = False
      Get #1, F, Fil(F) ------ Denne linie markeres af VB.
      F = F + 1
  Loop
Close #1
Filesize = F
Avatar billede sjh Nybegynder
12. juni 2006 - 21:06 #1
som jeg ser det så virker det som om du prøver på at læse 1 byte afgengen.. har dog aldrig set nogle gøre den på den måde som du gør det på :\

ellers prøv at gøre sådan..

Private Sub Form_Load()
Dim nSize As Long
Dim intFree As Integer
Dim arrData() As Byte

  intFree = FreeFile
  Open "Kupon1.bmp" For Binary Access Read As #intFree
    nSize = LOF(intFree)
    If nSize > 0 Then
      ReDim arrData(0 To (nSize - 1)) As Byte
      Get #intFree, 1, arrData
    End If
  Close #intFree

End Sub
Avatar billede sjh Nybegynder
12. juni 2006 - 21:09 #2
hvis det bare er lengten af filen du vil ha kan du bruge..

Filesize = FileLen("Kupon1.bmp")
Avatar billede joergen_vinther Nybegynder
12. juni 2006 - 21:56 #3
Hej sjh.
Som jeg har skrevet, har rutinen før virket tilfredsstillende. Hvorfor vil den så ikke nu ?
Avatar billede sjh Nybegynder
12. juni 2006 - 22:05 #4
mugligvis fordi Fil() ikke er defineret som et Array..
Avatar billede joergen_vinther Nybegynder
13. juni 2006 - 05:42 #5
Hej sjh.
Beklager, du svarer ikke på mit spørgsmål. Rutinen har hidtil virket. Nu virker den ikke. Hvorfor ?
Avatar billede sjh Nybegynder
13. juni 2006 - 09:40 #6
Ja det kan jeg jo ikke se når du kun kommer med en lille stump kode..

har du ikke en linje som fx:

Dim Fil() As Byte  eller  Dim Fil As "<- hvad står der her ->"
Avatar billede sjh Nybegynder
13. juni 2006 - 09:47 #7
men den skal sikkert se sådan ud:


Dim F As Long
Dim Fil As Byte
Dim Filesize As Long
  Open "C:\Kupon1.bmp" For Binary As #1
    F = 1
    Do While EOF(1) = False
      Get #1, F, Fil
      F = F + 1
    Loop
  Close #1
  Filesize = F
Avatar billede martin_moth Mester
13. juni 2006 - 12:58 #8
Du får fejl ved :

Get #1, F, Fil(F)

Skriv lige hvordan du erklærer F og Fil() - der har du ikke gjort endnu, og fejlen ligger sikkert der.
Du bruger VB6, ikke?
Avatar billede joergen_vinther Nybegynder
14. juni 2006 - 10:19 #9
Hej martin moth.

Dim F As Long
Dim Fil(10000000) As Byte

Som tidligere skrevet virker rutinen i flere andre programmer. Spørgsmålet er: Hvad kan forårsage, at den ikke virker nu ?
Avatar billede martin_moth Mester
14. juni 2006 - 16:30 #10
"Andre programmer"... Er det en VBA-macro du bruger i fx. Excel?? Eller er det en procedure, du genbruger i andre VB6 projekter?

Hvis det mere er et spørgsmål om at finde ud af hvorfor det ikke virker, fremfor at få det til at virke igen, har jeg kun følgende bud:

Hvis det er en VBA macro: Er "moderprogrammet (fx. Excel) - samme version?
Er dine input de samme (altså fx. din bmp-fil)
Og er du sikker på at din kode er 110% uændret?
Det er ikke et overrun i dit array (hvis dit input fra bmp'en er størrer end noget du har brugt før)
Avatar billede sjh Nybegynder
14. juni 2006 - 17:21 #11
10000000 er ca. 9,6 MB hvis din billede file så fylder mere end det så vil det jo gi fejl..
Avatar billede sjh Nybegynder
14. juni 2006 - 17:25 #12
Hvis du har en 10 liters spand så kan du jo ikke fylde den med 15 litter ??

ca. det samme problem som din kode har.
Avatar billede joergen_vinther Nybegynder
14. juni 2006 - 18:21 #13
Jeg har skrevet hele den sub, hvori rutinen er, om. Jeg har skrevet nøjagtigt som før. Nu virker den. Hvad der forårsagede fejlen finder jeg nok aldrig ud af.
Avatar billede martin_moth Mester
14. juni 2006 - 20:51 #14
Hvis du har skrevet det hele om, og i øvrigt ikke ændret på ydre parametre (fx. en anden bmp-fil), kan jeg godt GARANTERER dig, at du IKKE har skrevet nøjagtigt som før...

Men selv tak ;o)
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