[C++] Generierung einer Firefox-Suche

moagnus

Ensign
Dabei seit
Juli 2007
Beiträge
189
Hallo allerseits,

ich komme mal wieder nicht weiter mit meinen selbstgemachten Problemen. Diesmal versuche ich, einen Generator für die Firefox-Suche zu schreiben: Anhand der eingegebenen URL, des Suchbegriffes und des Namen der Suche (noch nicht implementiert) soll eine XML-Datei geschrieben werden, die dann in das entsprechende Verzeichnis kopiert werden kann.

Mein Problem hierbei ist, dass die Datei nicht erstellt wird, obwohl es in einem einfachen Beispiel mit exakt dem gleichen Code funktioniert.

Code:
#include <fstream>

int main()
{
std::fstream fout;
fout.open("Text.txt", std::ios::out);
fout << "Hello World";
fout << std::endl;
fout << "line 2";
fout.close();
}
PS.: Ich hoffe, ihr findet euch in dem Spaghetti-Code zurecht, ansonsten einfach fragen und kritisieren. ;)

Dankbar für jede Antwort,
moagnus
 

Anhänge

riod

Lt. Commander
Dabei seit
Jan. 2006
Beiträge
1.122
ich würd sagen das funktioniert nicht da du glaube ich keine datei erstellst, ich würd erstmal eine XML datei erstellen und schauen obs dann geht
 
N

NeoXpert

Gast
Eigentlich wird doch bei open die Datei angelegt, sofern nicht vorhanden und kein Schreibschutz vorhanden.

Mh ich habs mal kompiliert, der kommt bei mir gar nicht erst bis zum Datei anlegen, irgendwie steigt der vorher schon aus.
 
Zuletzt von einem Moderator bearbeitet:

moagnus

Ensign
Ersteller dieses Themas
Dabei seit
Juli 2007
Beiträge
189
Das kann eigtl. nicht sein, da mit dem Beispielcode eine Datei erstellt werden kann. Und in meiner writePlg.h verwende ich ja genau den gleichen Code.

XML datei erstellen und schauen obs dann geht
Momentan versuche ich noch, in eine txt-Datei zu schreiben. Deinen Tipp hab ich trotzdem ausprobiert. Leider ohne Erfolg...

Eigentlich wird doch bei open die Datei angelegt
Es wird leider nicht mal die Datei angelegt, geschweige denn der Inhalt geschrieben.

der kommt bei mir gar nicht erst bis zum Datei anlegen, irgendwie steigt der vorher schon aus.
Welche Abfragen kommen denn genau? Und was gibst du ein?

Danke für die Antworten :)
 

Simpson474

Fleet Admiral
Dabei seit
Sep. 2006
Beiträge
12.654
Wenn ich deine Funktion writePlg verwende, dann funktioniert diese ohne Probleme. Vielleicht rufst du die Funktion nur nicht auf?
 

moagnus

Ensign
Ersteller dieses Themas
Dabei seit
Juli 2007
Beiträge
189
Hm... wenn ich writePlg.h alleine kompiliere, wird das Binary 8,08 MB groß und bricht mit der Fehlermeldung "Programm zu groß für den Arbeitsspeicher" ab.

Hab testweise auch mal die while-Schleife aus splugin.cpp auskommentiert, die Funktion extract also nur einmal aufgerufen, aber auch das macht keinen Unterschied.
 

Simpson474

Fleet Admiral
Dabei seit
Sep. 2006
Beiträge
12.654
Ruf mal die Funktion extract gar nicht auf. So habs ich jetzt mal gemacht und die Datei wird erstellt. Also muss deine extract noch einen Fehler enthalten. Ich weiß nur nicht was die Datei überhaupt machen soll :D
 

moagnus

Ensign
Ersteller dieses Themas
Dabei seit
Juli 2007
Beiträge
189
Die extract.h brauch ich, um die Attribute und ihre Werte aus der URL zu extrahieren.

Also bspw. für http://www.google.de/search?q=test schreibt die Funktion als Attribut1 "q" ins Attribute-Array und als zugehörigen Wert "test" ins Werte-Array.

Hab schon vermutet, dass da mit den Rückgabewerten irgendwas schief läuft, aber dass das dann solche Auswirkungen hat...
 

moagnus

Ensign
Ersteller dieses Themas
Dabei seit
Juli 2007
Beiträge
189
Ach lassts gut sein. Das Projekt war eh sinnlos... Die Suchmaschinen werden bei den meisten Seiten automatisch zum Hinzufügen angeboten.

Trotzdem danke euch für eure Bemühungen :)
 

Epyx

Lt. Junior Grade
Dabei seit
Feb. 2006
Beiträge
333
Habs mir mal angesehn, und ein wenig verändert. Warum durchläufst du die Strings mit Schleifen und nutzt nicht einfach die MemberMethoden der jeweiligen Klasse ??

So könnte aus :

Code:
while(url[i] != '?') { // save domain name
domain += url[i++];
}
ein

Code:
char domain[256]
memset( domain, '\0', 256 );
int enddomain = (int) url.rfind( "?", url.length() );
url.copy(domain, enddomain);
werden, was ich persönlich übersichtlicher finde und wenn man das wiederum in Funktionen verpackt auch Code spart.
 

moagnus

Ensign
Ersteller dieses Themas
Dabei seit
Juli 2007
Beiträge
189
Thx, kannte memset nicht...
Projekt ist aber tot, weil zu sinnlos :p
 

Epyx

Lt. Junior Grade
Dabei seit
Feb. 2006
Beiträge
333
Mein SystemInfo is auch sinnlos, weils davon 1000+ Stück gibt. Die Frage ist ja nicht, obs sinnvoll ist, sondern was dabei rauskommt und was man dabei lernen kann.
 

moagnus

Ensign
Ersteller dieses Themas
Dabei seit
Juli 2007
Beiträge
189
Solche Projekte werd ich wahrscheinlich wieder zu Hauf starten, wenn die nächsten Tage mein Qt-Buch kommt... :) Dann will ich nämlich eher mal ein bisschen graphisch basteln.
 

Epyx

Lt. Junior Grade
Dabei seit
Feb. 2006
Beiträge
333
Qt ist sehr geil. War bisher zu geizig um mir ein Buch darüber zu kaufen, aber das Slot-System und die Möglichkeiten die in Qt4 (siehe KDE 4) stecken sind übelst beeindruckend :)
 

moagnus

Ensign
Ersteller dieses Themas
Dabei seit
Juli 2007
Beiträge
189
Ein Manko ist halt die Tatsache, dass sich die Lizenz ändert, wenn man für kommerzielle Zwecke programmiert. Aber da das für mich sowieso vorerst uninteressant sein sollte und da es zu GTK keine gescheiten Bücher gibt, versuch ichs jetzt eben mit Qt. :)
 
Top