Hi WWW-Mitglieder,
ich habe ein Problem in C++ (was sonst):
Ich möchte .txt-Dateien aus dem Internet einlesen. Das hörte sich für mich am Anfang einfach an, aber irgendwie will das ganze nicht funktionieren…
Schaut euch einfach mal folgenden Codeausschnitt an:
char Text[200];
ifstream Input1 („http://www.adresse.de/datei.txt“, ios::binary);
Input1 >> Text;
Was mache ich falsch? Mit lokalen Dateien auf meinem PC funktioniert alles…
Ich hoffe ihr könnt mir weiterhelfen.
Mit freundlichen Grüßen
Shahri
hmm
Also ich als Server frag mich als erstes, welches Protocoll spricht den der ifstream ?
Denn immerhin muss ja über Netzwerk zu einen anderen Netzwerk eine verbindung aufgebaut werden. Dazu braucht es ein Protokoll und vielleicht eine Authorisation.
Datei Befehle auf dem LokalNet sind also nicht gleich
Datei Befehle Internet 
Somit würd ich erstmal schauen ob du nicht ein handle bzw object brauchst was eine z.b. http connection aufbaut , daten empfängt und wieder abbaut (fals nötig) 
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Da das Thema umfangreicher ist 
Der Link zum Problem http://www.zotteljedi.de/doc/socket-tipps/index.html
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Also das bin jetzt wieder ich (Verfasser des Threads), hab mich nur umbenannt… (Dingens->Shahri)
Danke für die Antworten erstmal. Ok, das wird doch komplizierter als ich gedacht habe… Muss ich wirklich das ganze Zeugs mit den Sockets und so machen? (Die Antwort ist 100%ig sowieso „ja!“ ^^)
Ich würde jetzt am liebsten ein schlimmes Wort sagen, aber dann krieg ich nachher noch eine Forumsperre.
Naja, nochmals Danke, ich werd mich hier melden, wenn ich irgendwelche Probleme mit den Sockets hab (und die hab ich mit Sicherheit…).
MfG
Shahri
wenn du die MFC benutzt wirds vielleicht einfacher 
Aber dazu müsstest du schon sagen , was du wie tust, Compiler z.b. etc
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hmm, ich denke MFC ist eher nichts für mich, ich will das Programm (größtenteils) selbst programmieren. Und ihr seid sicher, dass nicht irgendjemand noch zufällig einen Beispielcode für mein Problem übrig hat (wie gesagt, „größtenteils“, nicht vollständig^^)? Sagt nicht, ich hätte nichts selbst gemacht, ich habe jetzt bereits 170 Zeilen programmiert (leere Zeilen weggelassen, also 170 Zeilen reinen Code).
mFG
Shahri
Mit MFC Datei aus dem Internet einlesen
Hi WWW-Mitglieder,
ich habe ein Problem in C++ (was sonst):
Ich möchte .txt-Dateien aus dem Internet einlesen. Das hörte
sich für mich am Anfang einfach an, aber irgendwie will das
ganze nicht funktionieren…
Schaut euch einfach mal folgenden Codeausschnitt an:
char Text[200];
ifstream Input1 („http://www.adresse.de/datei.txt“,
ios::binary);
Input1 >> Text;
Für die MFC gibts es in der MSDN
Herstellen einer Verbindung
Erstellen Sie eine „CInternetSession“, um die Basis für eine Internetclientanwendung einzurichten.
Öffnen eines URLs
Stellen Sie eine Verbindung her.
Rufen Sie „CInternetSession:
penURL“ auf.
Die OpenURL-Funktion gibt ein schreibgeschütztes Ressourcenobjekt zurück.
Lesen von URL-Daten
Öffnen Sie den URL.
Rufen Sie „CInternetFile::Read“ auf.
ein Beispiel gibts dazu auch
Visual C+±Beispiele für MFC
TEAR-Beispiel: Abrufen von HTML-Seiten aus dem Internet
Hmm, ich denke MFC ist eher nichts für mich, ich will das
Programm (größtenteils) selbst programmieren.
Dann schonmal viel Spass. Was du willst läuft auf einen mehr oder weniger vollständigen HTTP-Stack raus, wäre also nur die x+1te Neuentdeckung des Rads. Da ist es schon besser, eine Bibliothek zu verwenden, die das alles schon kann. Qt bietet beispielsweise einen kompletten I/O-Wrapper an, mit dem man dann halbwegs transparent auf so ziemlich alles zugreifen kann, was irgendwo am Netz hängt.
Sorry, ich hab überhaupt keine Ahnung von MFC, damit kann man doch Anwendungen mithilfe eines Assistenten erstellen, oder? Aber die Anwendung an sich habe ich ja schon, ich brauche nur noch irgendetwas, womit ich Daten aus einer .txt-Datei im Internet auslesen kann. Gibt es da nicht irgendwo einen Beispielcode für, bei dem ich nur noch ein paar Einzelheiten ändern muss? In der MSDN hab ich schon gesucht, aber ich bin auch nicht gerade der Suchprofi des Jahrtausends…
mfG
Shahri
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Qt bietet
beispielsweise einen kompletten I/O-Wrapper an, mit dem man
dann halbwegs transparent auf so ziemlich alles zugreifen
kann, was irgendwo am Netz hängt.
Hab mich mal über QT informiert, dass klingt eigentlich gut, aber die aktuelle Version ist 33Mb groß, was ich mit meinem 56k-Modem (ja, ich hab immer noch so ein Ding…) wohl voll vergessen kann… Wie ist das, sind da so einzelne Quellcodedateien drin? Falls ja, kann mir jemand die Datei die ich benötige per Mail schicken?
mfG
Shahri
Kurzer Quicki :
Programme -> Start - > Visual C++
Neues Projekt -> MFC-Anwendung -> SDI,Basisklasse CHtmlEditView
nun in der Klassenansicht doppelt auf die Funktion OnNewDocument der vom Assitenten anglegten Doc Klasse.
und dort dann z.b.
_BOOL CTestViewHTMLEDItDoc::open\_mouth:nNewDocument()
{
if (!CHtmlEditDoc::open\_mouth:nNewDocument())
return FALSE;
// TODO: Hier Code zur Reinitialisierung einfügen
// (SDI-Dokumente verwenden dieses Dokument)_ OpenURL("http://www.legioneuropa.de/index.html");
_return TRUE;
}_
Das Beispiel Zeigt eine Webseite in einem Fenster 
Die wohl einfachste Art eine Webseite zu Laden mittels MFC Assistent 
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Kurzer Quicki :
Programme -> Start - > Visual C++
Neues Projekt -> MFC-Anwendung -> SDI,Basisklasse
CHtmlEditView
nun in der Klassenansicht doppelt auf die Funktion
OnNewDocument der vom Assitenten anglegten Doc Klasse.
und dort dann z.b.
_BOOL CTestViewHTMLEDItDoc:
nNewDocument()
{
if (!CHtmlEditDoc:
nNewDocument())
return FALSE;
// TODO: Hier Code zur Reinitialisierung einfügen
// (SDI-Dokumente verwenden dieses Dokument)_ OpenURL(„http://www.legioneuropa.de/index.html“);
return TRUE;
}
Das Beispiel Zeigt eine Webseite in einem Fenster 
Die wohl einfachste Art eine Webseite zu Laden mittels MFC
Assistent 
Sorry wenn das bisschen schlecht rüberkam, aber ich will die TXT-Datei ja nicht anzeigen, sondern deren Inhalt dieser in einer Variable speichern.
MfG
Shahri
Sorry , ne copy and past methode wirds da nicht geben fürchte ich 
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Sorry , ne copy and past methode wirds da nicht geben fürchte
ich 
Schade…
Thema MFC Nachtrag
Einfacher WebseitenLoad ASCII ohne Fehlerbearbeitung wäre
#include
#include
#include
CInternetSession myISession;
CHttpFile\* pFile = NULL;
pFile = (CHttpFile\*) myISession.OpenURL("http://www.gnu.org/licenses/fdl.txt",1,INTERNET\_FLAG\_TRANSFER\_ASCII,NULL,0);
TCHAR sz[1024];
while (pFile-\>ReadString(sz, 1023))
{
TRACE("Zeile :%s\n",sz);
}
Datei txt wird gelesen und steht in sz Zeilenweise zur Verfügung 