datei in

ich würd gerne den Befehl wissen damit ein Texdokument, das außerhalb des Programms liegt, mit einem TextEditor geöffnet wird. Uns zwar in (k)basic.
mus man da nicht irgentwie

Code:
open /home/dave4dead/datedieichöffnenwill
eingeben oder wie geht dass.
d4d
 
in einem externen Texteditor ist 'ne schlechte Idee... es KANN funktionieren, kann aber auch schiefgehen, da du ja nicht weißt, auf welchem System dein Programm ausgeführt wird und was dort an Programmen verfügbar ist...

ich kenn mich mit Basic nicht aus, aber schau mal, ob es einen Befehl gibt, um Konsolenbefehle auszuführen...

Da könntest du schauen, ob es eine Umgebungsvariable %WINDIR% im System gibt und wenn ja, dann die notepad.exe (liegt die direkt im Windows-Verzeichnis? ich glaube, oder?) über den entsprechenden Befehl öffnen...
 
@beavisbee & benediktibk
Ich glaube ihr geht davon aus, dass er sich auf Windows bezieht. Der Pfad sieht mir aber ziemlich nach Linux aus und in seinem Profil steht auch Ubuntu als OS.

in einem externen Texteditor ist 'ne schlechte Idee... es KANN funktionieren, kann aber auch schiefgehen, da du ja nicht weißt, auf welchem System dein Programm ausgeführt wird und was dort an Programmen verfügbar ist...
Ich würde es so machen, dass ich erstmal das OS feststelle (in C++ ganz einfach über #ifdef, in kbasic weis ich's nicht) und dann einfach die gängigsten Programme durchprobiere. So ziemlich jedes Windows-OS hat Notepad und Wordpad. Bei Linux kannst du ja gedit und kate versuchen.
Aufrufen kann man das dann in c++ über system("Das was du auch in der Konsole eingeben würdest");. Dazu gibt's in kbasic sicher ein Äquivalent.
Den Rückgabewert von system(..) müsste man auch auswerten können, so das man rausfinden kann, ob das jeweilige Programm existiert.

Im Zweifelsfall kannst du ja einfach einen Texteditor mitliefern. ^^
 
Wenns ein UNIX artiges OS ist, kannst du die Umgebungsvariable EDITOR als Befehl fuer den Editor interpretieren. Wenn die Variable nicht gesetzt ist (was IMHO eher selten der Fall sein sollte), kannst du ja das Programm beenden mit einer Ausgabe a la "EDITOR not set".
 
Also ich hätts mir so gedacht, dass ich ein 2-teiliges Programm liefere, der eine tei diese
loop programm, der das öffnet das zweite programm, welches sagen wir dann nen open office is und den befehl dann ausführt, indem es diesen Text dann ausführt
d4d

hat da jemand nen code für?
 
@farhaven: die Variable EDITOR gibt's bei mir nicht... (Debian)
aber es gibt einen Symlink /usr/bin/editor, welcher auf ein Script /etc/alternatives/editor linkt, welches wiederum den über update-alternatives konfigurierten Standard-Editor öffnet. Dies ist jedoch dann ein Konsolen-Editor wie vi, nano oder mcedit...


@dave:
deine Posts werden von mal zu mal unverständlicher... jetzt soll's auf einmal kein einfacher TextEditor mehr sein, sondern OpenOffice... (welches erstrecht nicht bei jedem Rechner installiert ist...)

vielleicht könntest du erst einmal erklären, was genau du vor hast, auf dass man vielleicht einen SINN in deinem Vorhaben finden kann und evtl. auch Alternativ-Lösungen posten kann...
 
Die Variable gibts bei dir nicht, weil du sie wahrscheinlich nicht gesetzt hast. Wenn die Variable gesetzt wurde, gibt es einige Programme, die sie benutzen, z.b. Vimperator oder mutt.
 
Ich würde es so machen, dass ich erstmal das OS feststelle (in C++ ganz einfach über #ifdef, in kbasic weis ich's nicht)

[...]

#ifdef ist eine Precompileranweisung. Das bedeutet sie wird noch vor dem kompilieren abgearbeitet. Was du damit also machen würdest wäre "herausfinden", unter welchem OS das Programm kompiliert wird.
 
Zumal die entsprechenden defines durch das Makefile gesetzt werden, und das auch nur, wenn man automake benutzt, und so etwas sollte kein Mensch tun...
 
@beavisbee also ich hätt mie gedacht, dass ich ein Programm programmiere, welches sobald es gestartet wird ein Textdokument
(zum Beispiel mit der Endung .odt oder .doc) öffnet. Das ganze verpacke ich in einer
Code:
loop
damit es mehrmals geöffnet wird (was eigentlich klar sein sollte)
d4d
 
und wo steckt da der tiefere Sinn? (außer, dass der Rechner, auf dem das läuft, lahmgelegt wird)

generell müsstest du einfach nur 2 Befehle finden (gibt doch im Netz sicherlich irgendwo ne Art Funktions-Referenz)

1.) überprüfen, ob eine Datei existiert
1b) oder etwas komplexer: nach einer Datei in bestimmtem Pfad rekursiv suchen

2.) Ausführen von Konsolenbefehlen


mit 1. oder 1b versuchst du heraus zu finden, was an Textverarbeitungsprogramm installiert ist und mit 2. kommt dann meinetwegen
Code:
/usr/bin/abiword datei.doc
raus...
 
Zurück
Oben