Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

notepad öffnen und TXT-Datei anzeigen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 175

BeitragVerfasst am: 30.09.2022, 10:27    Titel: notepad öffnen und TXT-Datei anzeigen Antworten mit Zitat

Hallo,
nach längerer Zeit habe ich wieder ein spezielles Problem.
Ich schreibe ein Programm zur Erfassung einen Protokolls. Dieses besteht aus Informationen, die man einfach über INPUT eingeben kann und, im Mittelteil, aus Text. Für diesen Text eignet sich z.B. Notepad.exe.
Ich habe kein Problem Notepad in meinem Programm zu öffnen aber nun kommt es:
als Eingabehilfe für den Protokollanden möchte ich eine bestehende Textdatei in den Editor laden, die eine Struktur in Form eines vorgegebenen Textes enthält.
Natürlich kann man diese Textdatei leicht mit Notepad aufrufen. Es wäre aber um vieles schöner wenn nach der Öffnung des Editors gleich diese Datei gezeigt würde.
Den Editor habe ich mit SHELL aufgerufen und dann testweise den Dateinamen, samt Pfad, gleich dahinter anzugeben. Leider funktioniert das nicht.
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1208
Wohnort: Ruhrpott

BeitragVerfasst am: 30.09.2022, 11:29    Titel: Antworten mit Zitat

Angenommen, die Datei, mit der du Notepad starten möchtest, heisst "c:\struktur.txt", dann erfolgt der Aufruf mit
Code:
Shell "start c:\struktur.txt"
sofern die Dateiendung (in diesem Falle ".txt") mit Notepad verknüpft ist.

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 175

BeitragVerfasst am: 30.09.2022, 13:25    Titel: Antworten mit Zitat

Super! Danke grindstone!
Ich habe inzwischen herumprobiert und auch eine Lösung gefunden, ist länger als deine, funktioniert aber:
[code]
SHELL "cd\SVS\Protokolle && Protokoll.doc"
[/quote]
Hab jetzt beides ausprobiert und werde klarerweise mit "start" arbeiten, danke!
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 175

BeitragVerfasst am: 30.09.2022, 14:01    Titel: Antworten mit Zitat

jetzt habe ich noch eine Frage:
In der Freebasic-Referenz habe ich gelesen, dass man die Befehle SHEL und OPEN auch als Funtion verwenden kann. Diese Funktion gibt, wenn die Datei nicht vorhanden ist den Wert -1 zurück.
Ich habe nun nach Anleitung eine nicht vorhandene Datei mit OPEN als Funktion geöffnet und das Ergebnis abgefragt.
Die Ergebisvariable zeigte den Wert und als ich im Verzeichnis nachsah war die vorher nicht existente Datei mit der Größe 0 angelegt.
Das war nicht das was ich wollte:
ich wollte eine Datei A öffnen und wenn sie nicht vorhanden ist statt A die Datei B öffnen.
Der Hintergrund: A soll eine ganz oder teilweise ausgefüllte Protokolldatei sein. Ist A vorhanden kann man sie nun weiter ausfüllen, ist sie nicht vorhanden wird ein Template geöffnet das ausgefüllt werden kann.
Code:

DIM result AS INTEGER
result = OPEN ("\SVS\Protokolle\Protokoll2363.doc" FOR INPUT AS #1)
PRINT result
if result < 0 then SHELL "start \SVS\Protokolle\Protokoll.doc" ENDIF
GETKEY

Egal ob ich OPEN oder SHELL als Funtion verwende es kommt immer auf's gleiche raus.
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4594
Wohnort: ~/

BeitragVerfasst am: 30.09.2022, 18:13    Titel: Antworten mit Zitat

Wenn die Datei erfolgreich geöffnet werden konnte, liefert OPEN 0 zurück, nicht -1. Ein Wert ungleich 0 bedeutet, ein Fehler ist aufgetreten; der Wert gibt dann die Fehlernummer an (in der Regel 2 oder 3).
Bei OPEN FOR OUTPUT oder OPEN FOR APPEND wird übrigens, wenn die Datei nicht existiert, eine neue Datei angelegt - vielleicht war das dein Problem. Um die Existenz einer Datei zu prüfen, ist FILEEXISTS besser geeignet.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
kilix



Anmeldungsdatum: 05.02.2022
Beiträge: 175

BeitragVerfasst am: 01.10.2022, 09:19    Titel: Antworten mit Zitat

Genau wie du das in deinem ersten Satz beschreibst habe ich es verstanden.
Ich hatte die Datei zuerst ohne Angabe ob for Input oder Output etc. angegeben. Als ich sah, dass die vorher nicht existierende Datei erstellt wurde habe ich sie for Input geöffnet. Das habe ich heute nochmals gemacht und diesmal stimmte es (da hab ich gestern durch das viele Probieren was falsch gemacht).
Allerdings bekamm ich den Fehlercode "2" und nicht "-1". Das stimmt aber mit dem überein was du geschrieben hast, er ist <>0.

Ich habe mich aber in der Zwischzeit entschlossen das anders aufzubauen. Nach dem ursprünglichen Plan hätte der Protokollant das Template bearbeitet und dann mit einem standardisierten Dateinamen, der die Protokollnummer enthält, speichern müssen. Wenn er sich beim Namen irrt findet das Druckprogramm die Datei (wird eine Textdatei sein) nicht mehr.
Ich werde daher, wenn es die Protokolltextdatei noch nicht gibt, die Templatedatei als Datei mit dem richtigen Namen kopieren. Der Protokolant braucht sie dann nach Bearbetung nur noch speichern. Damit ist der Name immer richtig.
Edit: Für das Kopieren gibt es ja den Befehl FILECOPY damit sollte das ganz einfach sein.
_________________
Grüße
kilix
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz