![]() |
Anzeige:
|
|
|||||||
| XProfan Alles rund um die Programmiersprache XProfan. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 08.12.2009
Ort: Mecklenburg
Beiträge: 202
|
Hallööchen, ich brauche eine Möglichkeit, um festzustellen, ob dbf-dateien, die ich mit db("open",N,S) geöffnet habe schon geschlossen sind oder nicht.
Oder: ob zur Zeit dbf-dateien geöffnet wurden/sind, wenn ja welches Handle. @FileStatus$(#N) liefert in diesem Fall immer einen Leerstring. Eignet sich also nicht für diesem Zweck. (was ja auch logisch ist) Hintergrund: Beim Entwickeln & Testen bau ich mitr oft so eine "beenden-proc", die ich dann an beliebiger Stelle im Code aufrufe. Dort schließe ich alle bis dahin geöffneten Text oder dbasedateien & sql-Verbindungen. Um diese dann nicht immer extra ändern zu müssen (weil mal mehr - mal weniger dbf-dateien geöffnet sind), wollte ich mir so eine Universalfunktion bauen, die das prüft & alle dbf's ordentlich schließt, bevor das prog beendet wird. Könnte auch nützlich werden, wenn das Programm aus irgendwelchen Gründen vorzeitig beendet werden muß. In diesem Fall könnte ich Zentral alle noch offenen dbf-Dateien schließen. Ein pauschales db("close",#N1-N15) in einer Schleife geht auch nicht.
__________________
Gruß Jörg Ideen gibt es viele - man muß sie nur haben... XProfan 11.2, XP-Pro SP2/3 Geändert von JörgG (17.08.2011 um 15:07 Uhr) |
|
|
|
|
|
|
#2 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 23.01.2011
Ort: Bernburg
Alter: 58
Beiträge: 759
|
Wie wäre es mit Arrays, jeweils eins für Datei, DBase, SQL? Immer, wenn Du was erfolgreich geöffnet hast, suchst Du im jeweiligen Array die erste Zelle, die 0 enthält und trägst dort die Dateinummer oder das SQL-Handle ein. Schließt Du etwas, suchst Du wieder das entsprechende Array nach der geschlossenen Sache ab und setzt den gefundenen Wert auf 0. Die Beenden-Proc muß dann die Arrays durchackern und jede Stelle, die nicht 0 ist schließen.
Das Ganze dann als Include mit dem Prozeduren AddFileItem X, DeleteFileItem X und CloseAll, und Du hast die ganze Arbeit nur einmal und brauchst im Programm nur bei Erfolg die Add.. oder Delete..Proc aufrufen. In die Exitproc Deines Programmes kommt dann CloseAll rein. Gruß Volkmar |
|
|
|
|
|
#3 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 08.12.2009
Ort: Mecklenburg
Beiträge: 202
|
Hi Volkmar, dein Ansatz gefällt mir. Ich werde mal in dieser Richtung was zusammenschrauben. Der Index des jeweiligen Arrays könnte dann gleichzeitig das db- oder FileHandle sein. Dann kann ich direkt drauf zugreifen, ohne das Array nach der nächsten freien Stelle zu durchsuchen. Also:
Code:
DBarray%[Handle%] = 1 'geöffnet DBarray%[Handle%] = 2 'geschlossen Gute Idee - Danke! Ich meld mich mal, wenn ich das ausprogrammiert habe Bis denne
__________________
Gruß Jörg Ideen gibt es viele - man muß sie nur haben... XProfan 11.2, XP-Pro SP2/3 |
|
|
|
|
|
#4 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 15.02.2011
Beiträge: 106
|
Ich weiß nicht, wie groß die Handles sind. Wenn die sich aber im Bereich abspielen, wie Fensterhandles, würde ich das so eher nicht machen. Erstens erhälst Du so unütz große Arrays, die Du dann zweitens auch noch abklappern mußt, um herauszufinden, ob die Datei offen ist, oder nicht.
Ich würde einfach eine Listbox als Array nehmen. Handle in ie Liste, wenn geöffnet - wieder raus, wenn zu. So bleibt die Liste überschaubar und du kannst sie ruckzuck abarbeiten, wenn Du alles schließen willst.
__________________
Anhören lohnt sich wuestensand.info |
|
|
|
|
|
#5 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 23.01.2011
Ort: Bernburg
Alter: 58
Beiträge: 759
|
JörgG meinte da mit Handle die Dateikennung, also #1 wäre dann Array%[1] u.s.w. Aber Listboxen wären da die noch bessere Möglichkeit. die haben dann nur so viele Einträge, wie aktuell Dateien offen sind. ist sogar noch besser, finde ich.
Gruß Volkmar |
|
|
|
|
|
|
#6 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 08.12.2009
Ort: Mecklenburg
Beiträge: 202
|
ok, im Grunde genommen sind Listboxen im "inneren" ja auch Arrays. Ich bin da jetzt nicht ganz sicher, aber kann ich denn z.B. 3 Listboxen-Listen parallel betreiben?
@_Joerg_, wie Volkmar schon sagte: das Array für die DBF wäre maximal 16 Elemente groß & das Array für die Dateien max. 100 Elemente. (falls ich fest declariere). Bei dynamisch declarierten Arrays hätte ich den gleichen Effekt, wie bei der Listbox
__________________
Gruß Jörg Ideen gibt es viele - man muß sie nur haben... XProfan 11.2, XP-Pro SP2/3 |
|
|
|
|
|
#7 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 23.01.2011
Ort: Bernburg
Alter: 58
Beiträge: 759
|
Listboxen kannst Du wie jedes Control so viel nutzen, wie rein passen, wenn Du sie mit Create("ListBox", ..) oder als reine Liste mit Create("List", ..) erzeugst und Dich nicht auf die ständig verfügbare Listbox-Liste beschränkst. Da könntest Du dann beim Schließen wieder die Zeile löschen und hättest zum Schluß nur so viele Zeilen in der Liste, wie noch Dateien offen sind. Beim Hinzufügen wäre es ein einfaches AddString() nur beim Löschen müßtest Du die Zeile wieder suchen.
Gruß Volkmar |
|
|
|
|
|
#8 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 08.12.2009
Ort: Mecklenburg
Beiträge: 202
|
hmm, hast Recht! habe grad mal schnell nachgelesen, beim löschen könnte ich die betreffende DateiNr. mit:
Code:
@SelectString(N1,N2,S) Dann könnte ich zum Schluss (closeAll) einfach ganz stumpf die restlichen Elemente abarbeiten, ohne irgendwelche Bedingungen abfragen zu müssen Jo! Ich werde dafür die Listen als Basis nehmen. Ist doch immer wieder gut, wenn man etwas länger über den Lösungsweg redet, bevor man anfängt, zu coden
__________________
Gruß Jörg Ideen gibt es viele - man muß sie nur haben... XProfan 11.2, XP-Pro SP2/3 |
|
|
|
|
|
#9 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 23.01.2011
Ort: Bernburg
Alter: 58
Beiträge: 759
|
|
|
|
|
|
|
#10 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 08.12.2009
Ort: Mecklenburg
Beiträge: 202
|
Jo Danke, auch an _Joerg_ für den "Denkanstoß"
__________________
Gruß Jörg Ideen gibt es viele - man muß sie nur haben... XProfan 11.2, XP-Pro SP2/3 |
|
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| DBase III Datei anzeigen. Mit Update Möglichkeit. | Gerhard Putschalka | Helfer & Tools | 2 | 16.02.2011 07:12 |
| Eine Datei mit Namen ... ist bereits geöffnet | Paule | a.) Tabellenkalkulation | 0 | 28.10.2008 00:05 |
| Word im IE geöffnet, Datei senden an (als Anlage)? | Axcel Gast | Browser, eMail und Messenger | 2 | 29.03.2007 12:01 |
| Datei soll geöffnet und wieder geschlossen werden | Peaceman | Sonstige Programmiersprachen | 3 | 29.04.2006 14:34 |
| PSF-Datei kann nicht geöffnet werden! | Tim-Nikola | Windows XP | 4 | 27.03.2006 09:07 |