Toon posts:

[VB6] Geeft File Mode door aan functie

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik een functie waarin een bewerking wordt gedaan op een bepaalde file. Echter soms wil ik dat de bewerking wordt uitgevoerd met als filemode 'output' en soms als filemode 'append'. Is het mogelijk dit direct aan de functie door te geven? Wat ik bedoel is ongeveer het volgende:
Visual Basic:
1
2
3
private sub recall(location as string, filemode as ?????)
     open location for filemode as #1
end sub

Wat voor soort type moet ik dan voor filemode nemen?
edit:
Typo in kop: Geeft -> Geef

[ Voor 8% gewijzigd door Verwijderd op 21-08-2003 13:16 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Heb je 'integer' al geprobeerd? :?
edit:
Las je code compleet verkeerd, is ook niet echt duidelijk :z

[ Voor 55% gewijzigd door curry684 op 21-08-2003 13:39 ]

Professionele website nodig?


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Ik weet hem niet uit het hoofd, maar je zou iets als een FileModeOpenEnumeration moeten kunnen gebruiken. Kijkje in de docs?

Oops! Google Chrome could not find www.rijks%20museum.nl


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 21-08 18:33
Volgens mij is dat oeroud en waarschijnlijk een Long met bitflags.

[oops]
mode Required. Keyword specifying the file mode: Append, Binary, Input, Output, or Random. If unspecified, the file is opened for Random access.
Maw, wat jij wil kan waarschijnlijk niet , of je moet een Dim Blah as Keyword kunnen doen :)

[ Voor 69% gewijzigd door farlane op 21-08-2003 13:50 ]

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 15-08 11:47

Sponge

Serious Game Developer

Je kan zoiets als dit doen

code:
1
2
3
4
5
6
7
private sub recall(location as string, optional blnReadOnly as boolean = False)
   if blnReadOnly = False then
     open location for input as #1
  else
     open location for output as #1
  end if
end sub



Overigens is een vaste file# niet echt aan te raden :)

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
farlane schreef op 21 August 2003 @ 13:45:
Volgens mij is dat oeroud en waarschijnlijk een Long met bitflags.

[oops]


[...]


Maw, wat jij wil kan waarschijnlijk niet , of je moet een Dim Blah as Keyword kunnen doen :)
Yep farlane heeft gelijk. Ik dacht dat het een enumeratie was, het is echter een keyword. Zelf maar een select case o.i.d. maken lijkt me de beste oplossing.

Oops! Google Chrome could not find www.rijks%20museum.nl


  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 19-08 19:06
Joost (lang niet gezien/gesproken trouwens :)), waarom gebruik je geen FileSystemObject? Daar werkt het wel met integers, die je dus zonder problemen kunt doorgeven:

Visual Basic:
1
2
3
4
5
6
7
8
9
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")

Dim file As Object
Dim ioMode As Integer
' ioMode: 1 = lezen; 2 = schrijven; 8 = appenden
Set file = fso.OpenTextFile("je bestand", ioMode)

MsgBox file.ReadLine ' zo lees je bijvoorbeeld een regel uit

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 21-08 18:33
Limhes schreef op 21 August 2003 @ 14:59:
waarom gebruik je geen FileSystemObject?[/code]
Ik kan me er wel wat bij voorstellen :

Extra reference, versiebeheer is een crime in vb.
FileSystemObject bestaat niet standaard op alle platforms.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

Topicstarter
farlane raakt de spijker op de kop. Je hebt weer een 2 objecten erbij. Die moet je ook nog eens setten. Tevens is het filesystemobject ook nog niet helemaal crosscompatible. Ik heb nu gekozen voor de oplossing zoals 41.6C.6D.61.72 deze ook voorstelt. Bedankt voor de reacties. Heb nog eens rondgekeken, maar volgens mij is het met Open inderdaad niet mogelijk.

@Limhes: Tot over een dik weekje!

[ Voor 10% gewijzigd door Verwijderd op 21-08-2003 16:51 ]

Pagina: 1