Warum willst du Zenity da unbedingt rein stricken?
Druckbare Version
Warum willst du Zenity da unbedingt rein stricken?
weil OpenFileDialog und SaveFileDialog-Funktionen nunmal PopUpWindows mit File Browsern zur Auswahl benötigen, ist doch klar, das war doch der Sinn der Sache!
die Funktion kann ja durchaus doppelt gewrapt sein:
innen fopen()
und außen rum popen()
wie genau, ist egal, Hauptsache, am Ende steht ein FILE * fp, dessen Name man per Menü ausgewählt hat, entweder zum Öffnen oder zum Speichern.
Dann wäre aber eine extra Funktion für Zenity logischer die dann einen Dateinamen zurück gibt die man dann an die entsprechende Funktion weiter gibt. So wie mein Menü das auch macht. Da liesse ich mit mir reden.
Ich lass mich überraschen,
aber ein FILE * fp wird in jedem Fall gebraucht, da ja stdio.h Funktionen über den File Pointer (handle) funktonieren (u.a. close(FILE * fp) )
popen() hat ja praktischerweise fast dieselbe Syntax wie fopen(), wie schon woanders angemerkt.
Über das Öffnen und Schliessen brauchst du dir keine Gedanken zu machen. Das läuft dann in der Funktion selbst.
@hirnfrei es gibt Libs die tauschen FPs aus und Libs die tauschen Pfadnamen aus, bau einfach eine Variante mit ein, die es erlaubt FPs zu übergeben :D das macht das Leben einfacher, auch wenn man dafür einen klacks mehr code schreiben muss
mach einfach eine methode saveToFile(*FP), eine methode saveToFile(*Str) und eine methode *FP getFPfromStr(*Str)
in der saveToFile(*Str) dann einfach saveToFile(getFPfromStr(*Str));
sorry für die Pseudo Code verwendung, aber im Moment knabber ich heir an einem völlig unlogisch erscheinenden Ablaufproblem und hab keinen Cache für C-Code mehr im Hirn Frei
Wie rufst du zenity eigentlich von c aus auf?
auch im Original-Code dürfen ja nur FILE * fp vorhanden sein und keine streams oder Objekte oder was auch immer als files, von daher werden Dateinamen ja eh nur zur Auswahl benötigt
fp = fopen (char * filename, "r")
fp = fopen (char * filename, "w")
- und die Namen werden ja nun von Zenity gepiped.
wie Zenity funktioniert, steht schon weiter oben!
...gehe zurück auf Seite 19!
https://www.roboternetz.de/community...l=1#post628328
https://www.roboternetz.de/community...l=1#post628316
Anm.:
sowas wäre also NICHT erlaubt:
datei.open(_datei, ios::in)
der Code muss ja mit gcc compilierbar sein, daher nur ANSI C, kein C++!
Nicht das du denkst ich hätte dich verlassen ;).
Ich kämpfe mit Wave :(. Laden und direkt abspielen ist einfach. Das aber in einem Array zu haben mit dem man dann auch noch arbeiten kann ist schwer :(.
Ich werfe glaube ich auch gleich was an die Wand oder so. Laden ist kein Problem aber dann ist nur in einem Viertel des Arrays überhaupt etwas Anderes wie 0 und man kann sich das ganze Array auch nicht ansehen denn dann gibt es einen Seg-Fault. Wie mich das nervt!
- - - Aktualisiert - - -
Das ist das was ich in einer vorherigen Antwort meinte. Damit es für dich passt muss ich meine eigene Art zu Programmieren, so wie ich es gewohnt bin und wie es mit schnell von der Hand geht in grossen Teilen aufgeben.Zitat:
sowas wäre also NICHT erlaubt:
datei.open(_datei, ios::in)
Was ein Scheiss! Ich bin zu doof die Daten aus dem Wave richtig in ein Array zu bekommen das ich später verarbeiten und anschliessend ausgeben kann! Hat wer rat?
@HaWe, reicht es wenn das Programm mit den selbst erstellten Wav's arbeiten kann?