Weitergabe von offenen Stream

Alle Fragen zur Programmierung, die nicht in die speziellen Themen passen
Antworten
dagnor
Foriker
Beiträge: 32
Registriert: Mi 26. Jul 2017, 09:52
Kontaktdaten:

Weitergabe von offenen Stream

Beitrag von dagnor » Fr 25. Aug 2017, 12:29

Hallo,

ich schreibe einen Formgenerator für MySQL-Tabellen. Verwende dazu eine Vorlage die ich selber machte. Viele Objekte und Funktionen sind von der Vorlage natürlich vorgegeben, und ich mache einfach ein Replace$ für die auswählte Tabelle, und schreibe die ungeänderten und geänderten Zeilen mit einem Stream in die neuen .class und .form. Ich markiere die Stellen in der Vorlage, und rufe dazu ein Sub auf um die Felderhandling zu schreiben. Ich übergebe dazu den filehandler an das Unterprogramm mit

Code: Alles auswählen

lwrt = CheckGenSou(linr, filmrg, filwrt)
(muss nicht unbedingt etwas zurückgeben)
um hier die Objekte in den Form einztragen.
Jedoch bekomme ich aber im

Code: Alles auswählen

Public Procedure CheckGenForm(ids As String, Optional filmrg As Stream, Optional filwrt As Stream) As String
Print #filwrt, "INSERT"
den Fehler "Null object in ...." beim Schreibern
Also mache ich etwas falsch.
EDIT
Ich könnte allerdings das Formular in eine Arrrray ablegen, oder den Stream schließen und im Sub mit Append wieder öffnen. Das beantwortet jedoch nicht meine Frage.
LG, dagnor

Benutzeravatar
gambi
Moderator
Beiträge: 319
Registriert: Mi 8. Mai 2013, 21:46
Kontaktdaten:

Re: Weitergabe von offenen Stream

Beitrag von gambi » Fr 25. Aug 2017, 19:45

Hallo dagnor,
wie wurde filmrg und filwrt deklariert?

gg

dagnor
Foriker
Beiträge: 32
Registriert: Mi 26. Jul 2017, 09:52
Kontaktdaten:

Re: Weitergabe von offenen Stream

Beitrag von dagnor » Sa 26. Aug 2017, 12:04

Hallo gambi,

Code: Alles auswählen

  Dim filmrg As Stream    ' Filehandler for reading
  Dim filwrt As Stream    ' Filehandler for writing
im aufrufender sub. Vielleicht sollte ich es Public machen?

LG

Benutzeravatar
gambi
Moderator
Beiträge: 319
Registriert: Mi 8. Mai 2013, 21:46
Kontaktdaten:

Re: Weitergabe von offenen Stream

Beitrag von gambi » Sa 26. Aug 2017, 13:50

Hallo dagnor,

dieses Beispiel funktioniert bei mir:
gambas code
Public Sub Form_Open()
Dim filmrg As Stream    ' Filehandler for reading
Dim filwrt As Stream    ' Filehandler for writing
Dim linr As String
Dim lwrt As String

   filmrg = Open Application.Path &/ "input.txt" For Read
   filwrt = Open Application.Path &/ "output.txt" For Write
   lwrt = CheckGenForm(linr, filmrg, filwrt)

End

Public Procedure CheckGenForm(ids As String, Optional filmrg As Stream, Optional filwrt As Stream) As String
   Print #filwrt, "INSERT" 
End
Es werden die beiden Dateien input.txt zum Lesen und output.txt zum Schreiben geöffnet. Die müssen natürlich vorhanden sein, können aber zunächst leer sein.
Nach Ausführung hat output.txt den Inhalt 'INSERT'.

gg

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste