Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: ewald am 17.10.08 - 17:41:46
-
Hallo,
gibt es eine Möglichkeit 2 Dateien gleichzeitig zu öffnenhabe folgendes Problem:
Open fileName$ For Output As fileNum%
Open OtherfileName$ For Output As OtherfileNum%
Das Problem ist, ich krieg immer die Fehlermeldung "File already open", das heisst, ich muss erst immer eine Datei schliessen, bevor ich die nächste öffne. Sagt auch die DesignerHilfe. Gibt es irgendeine Möglichkeit, zwei Dateien Gleichzeitig zu öffnen?
Ewald
-
Solange in fileNum% und OtherfileNum% zwei unterschiedliche Zahlen stehen, sollte das funktionieren, IMHO.
-
Das funktioniert unter den von Dir genannten Bedingungen auch, Martin.
Ewald: Was sagt Freefile? Oder öffnest Du tatsächlich mit einer nicht initialisierten Integervariablen (also 0) den Output? Weiters: Worauf beziehst Du Dich da in der DesignerHelp?
Bernhard
-
So initialisier ich das.
Dim fileName As String, fileNum As Integer
fileNum% = Freefile()
Dim sReportfileName As String, iReportfileNum As Integer
iReportfileNum% = Freefile()
Open fileName$ For Output As fileNum%
Ist das vielleicht das Problem mit der nicht initialisierten Integervariablen?
Würde es da reichen, wenn ich bei den beiden Freefiles() jeweils ne Zahl reinschreibe?
-
Ich habs jetzt :-)
Dim fileName As String, fileNum As Integer
fileNum% = 1
Dim sFTPfileName As String, iFTPfileNum As Integer
iFTPfileNum% = 2
Dim sReportfileName As String, iReportfileNum As Integer
iReportfileNum% = 3
Statt Freefile() jetzt 1, 2 und 3 und schon gehts. Ihr habt mir den richtigen "Schubbs" gegeben ;-) Danke
-
Genau das ist der falsche Weg, weil Du niemals wissen kannst, welcher FileHandle schon vergeben ist.
Ich befürchte eher, Du führst Freefile aus, ohne vorher den anderen Handle eröffnet zu haben. Dann bekommst Du natürlich die gleiche Nummer, die Du dann nicht zweimal verwenden kannst.
Bernhard
-
:-[
heisst das, ich muss, wie vorher, Freefile() verwenden aber sofort danach den ersten Open machen bevor ich den nächsten Freefile() mache?
-
Bernhard, so gehts ;D
erst mit Freefile() initialisieren, dann gleich öffnen und DANACH erst die nächste Freefile() initialisierung und dann wieder öffnen
-
Naja, dafür ist Freefile ja auch da: "Gib mir den nächsten freien file handle". Machst Du das zweimal direkt hintereinander, bekommst Du die gleiche Nummer (und beim dritten Mal auch noch) - der nächste freie handle ist eben jener. Erst, wenn Du diesen belegst, wird die folgende Nummer belegt.
Da auch andere Programme handles belegen können, ist die "freihändige" Vergabe eigener Nummern identisch mit Russischem Roulette.
Vulgo:
Freefile -> sage mir die nächste freie Patronenkammer.
Open -> stecke eine Patrone hinein.
Freefile -> ... usw.
Im Gegensatz zu einem Trommelrevolver bietet Freefile 256 handles ;D
Bernhard