[C++]Textdatei auslesen und in WinAPI ausgeben

Diskutiere [C++]Textdatei auslesen und in WinAPI ausgeben im Developer Network Forum im Bereich Hardware & Software Forum; Hallo, hab da so ein kleines Programm erstellt, allerdings bleib ich jetzt daran hängen, das wenn man die Kategorie (Leiste) "Checkfile auslesen"...
  • [C++]Textdatei auslesen und in WinAPI ausgeben Beitrag #1
Ultimate Construct

Ultimate Construct

Bekanntes Mitglied
Dabei seit
19.06.2006
Beiträge
4.137
Reaktionspunkte
0
Hallo,

hab da so ein kleines Programm erstellt, allerdings bleib ich jetzt daran hängen, das wenn man die Kategorie (Leiste) "Checkfile auslesen" draufdrückt, eine Textdatei ausgelesen werden soll und diese auch (in eine Box o.ä.) hinkopiert/reingeschrieben werden soll, so das der benutzter es sehen kann.Da es mit WinAPI sein soll, geht zB. start("checkfile.txt") nicht (öffnet es ja nur als notepad logischerweise lol).
Wichtig ist halt das der Text "im" Programm drin sein soll.

MFG,The U.C.
 
  • [C++]Textdatei auslesen und in WinAPI ausgeben Beitrag #2
Ultimate Construct

Ultimate Construct

Bekanntes Mitglied
Dabei seit
19.06.2006
Beiträge
4.137
Reaktionspunkte
0
OK , habs geschafft.

Jedenfalls eine andere Frage :

Wie kann ich eine Zahl (die in einer Textdatei steht) und im I-Net ist mit einer anderen Zahl vergleichen? Wie man vergleich weiss ich ja ( if (x!=x) ... ) aber wie macht man das wenn die Datei im internet ist?
Und wie kann man per code eine textdatei runterladen ?

:)
 
  • [C++]Textdatei auslesen und in WinAPI ausgeben Beitrag #3
U

UnimatrixZero

Bekanntes Mitglied
Dabei seit
27.06.2001
Beiträge
645
Reaktionspunkte
0
OK , habs geschafft.

Jedenfalls eine andere Frage :

Wie kann ich eine Zahl (die in einer Textdatei steht) und im I-Net ist mit einer anderen Zahl vergleichen? Wie man vergleich weiss ich ja ( if (x!=x) ... ) aber wie macht man das wenn die Datei im internet ist?
Und wie kann man per code eine textdatei runterladen ?

:)
Stellt sich die Frage, was "im Internet" bedeutet...
Angenommen, Du meinst damit "auf einem Webserver per HTTP erreichbar".

Das dafür zuständige Windows-API nennt sich "Windows Internet". Damit kannst Du mit wenigen Zeilen Daten per HTTP, HTTPS und FTP laden. Zu finden in der MSDN oder dem Windows-SDK.

Hier ein schnell von mir zussammengehacktes Beispiel:
Code:
// HTTPTest.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//

#include "stdafx.h"
#include <windows.h>
#include <wininet.h>

int main(int argc, char* argv[])
{
    HINTERNET hInternet, hOpenUrl;
    
    if ((hInternet = InternetOpen("MeinProgramm", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0)) != NULL) {
        if ((hOpenUrl = InternetOpenUrl(hInternet, "http://www.powerforen.org", NULL, 0, 0 ,0)) != NULL) {
            char    *buffer = new char[10000];
            DWORD    bytesRead;

            if (InternetReadFile(hOpenUrl, buffer, 10000, &bytesRead) == TRUE) {
                buffer[bytesRead] = 0;
                printf("%s", buffer);
                delete[] buffer;
                InternetCloseHandle(hOpenUrl);
            }
        }
        InternetCloseHandle(hInternet);
    }
    return 0;
}
 
  • [C++]Textdatei auslesen und in WinAPI ausgeben Beitrag #5
Ultimate Construct

Ultimate Construct

Bekanntes Mitglied
Dabei seit
19.06.2006
Beiträge
4.137
Reaktionspunkte
0
Ach und , bei deinem Sourcecode gibt er mir fehler an das er printf net kennt <'printf' : undeclared identifier> warum das ? Benutzte VC++6
 
  • [C++]Textdatei auslesen und in WinAPI ausgeben Beitrag #6
U

UnimatrixZero

Bekanntes Mitglied
Dabei seit
27.06.2001
Beiträge
645
Reaktionspunkte
0
Also, ich habs mir so vorgestellt :

Falls die (CRC) Zahl nicht mit der hier (http://golden2talon.go.funpic.de/checklist.sfv) nicht übereinstimmt , soll http://golden2talon.go.funpic.de/checklist.txt runtergeladen werden (alte Datei überschreiben )
Mit meiner Routine kannst Du beide Dateien herunterladen. Du mußt sie nur noch auswerten bzw. auf Platte schreiben.

Edit: Wenn er printf nicht kennt, dann hast Du anscheinend die passenden header (stdio.h) vergessen einzubinden.
 
  • [C++]Textdatei auslesen und in WinAPI ausgeben Beitrag #7
Ultimate Construct

Ultimate Construct

Bekanntes Mitglied
Dabei seit
19.06.2006
Beiträge
4.137
Reaktionspunkte
0
Hm , dann kommt
Code:
qw.obj : error LNK2001: unresolved external symbol __imp__InternetCloseHandle@4
qw.obj : error LNK2001: unresolved external symbol __imp__InternetReadFile@16
qw.obj : error LNK2001: unresolved external symbol __imp__InternetOpenUrlA@24
qw.obj : error LNK2001: unresolved external symbol __imp__InternetOpenA@20
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
:/
 
  • [C++]Textdatei auslesen und in WinAPI ausgeben Beitrag #8
U

UnimatrixZero

Bekanntes Mitglied
Dabei seit
27.06.2001
Beiträge
645
Reaktionspunkte
0
Im Windows-SDK - das Du ja sicherlich installiert hast - findet sich zu "InternetCloseHandle":
Library Use Wininet.lib

Btw.: Du solltest Dich dringend mit den Grundlagen von C/C++ beschäftigen. Deine Fragen zeigen, daß es da ziemlich hapert.
 
  • [C++]Textdatei auslesen und in WinAPI ausgeben Beitrag #10
U

UnimatrixZero

Bekanntes Mitglied
Dabei seit
27.06.2001
Beiträge
645
Reaktionspunkte
0
  • [C++]Textdatei auslesen und in WinAPI ausgeben Beitrag #11
Ultimate Construct

Ultimate Construct

Bekanntes Mitglied
Dabei seit
19.06.2006
Beiträge
4.137
Reaktionspunkte
0
4 Erros weniger ...
Code:
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/updater.exe : fatal error LNK1120: 1 unresolved externals
hm , hab ich was übersehen?

Edit : Fehler gefunden : Das Projekt muss eine Win32 Console Application sein.

Dat programm ist cool :> Muss jetzt nur wissen als was es abgespeichert wird... wird es als Variabel gespeichert oder wo? Den ich brauch es ja um mit der vorhandenen Version zu vergleichen.

ps.: Du bist toll , die deppen von cplusplus forum brauchen über 60beiträge ( in nichtmal einem Tag ...) um mir irgentwas zu erklären, und du schaffst es mir alleine mit 4 beiträgen zu helfen <3
 
Zuletzt bearbeitet:
  • [C++]Textdatei auslesen und in WinAPI ausgeben Beitrag #12
Ultimate Construct

Ultimate Construct

Bekanntes Mitglied
Dabei seit
19.06.2006
Beiträge
4.137
Reaktionspunkte
0
Wie laded man jetzt eigentlich eine Datei runter?

Code:
                printf("%s", buffer);
                if (buffer == 0A477523) {
                    printf("Keine neuen Update's verfuegbar");
                }
                if (buffer != 0A477523) {
                    printf("Neue Update's verfügbar! Runterladen? j/n");
                     if (1 == j)
                     {
                         //Download von der checklist.txt datei ?? Wie
                     }
                    }
                     
                delete[] buffer;
                InternetCloseHandle(hOpenUrl);
Hoffe das ist so richtig mit den IF Abzweigung... hatte lange programmierpause :>
 
  • [C++]Textdatei auslesen und in WinAPI ausgeben Beitrag #13
U

UnimatrixZero

Bekanntes Mitglied
Dabei seit
27.06.2001
Beiträge
645
Reaktionspunkte
0
Du mußt meinen Code etwas umschreiben und in eine eigene Funktion/Klasse packen. Einschränkung: Es können max. 10000 Byte gelesen werden und ein kleiner Fehler ist auch noch drin. Läßt sich aber beides beheben.

"buffer" ist ein Zeiger auf den Speicherbereich, der die geladenen Daten enthält. Ein Vergleich mit einer Adresse ist sinnlos, da sich die jedesmal ändert. Du mußt den Inhalt vergleichen. Dazu kannst Du die Standard-String-Funktionen nutzen.
 
  • [C++]Textdatei auslesen und in WinAPI ausgeben Beitrag #14
Anno1989

Anno1989

Bekanntes Mitglied
Dabei seit
30.04.2006
Beiträge
1.293
Reaktionspunkte
0
Ort
NRW
Jap, guck mal nach strcmp. Das dürfte dir beim vergleichen vielleicht helfen.
 
  • [C++]Textdatei auslesen und in WinAPI ausgeben Beitrag #15
Ultimate Construct

Ultimate Construct

Bekanntes Mitglied
Dabei seit
19.06.2006
Beiträge
4.137
Reaktionspunkte
0
Wie kapier das jetzt nicht ganz als was es Initialisiert wurde um es vergleichen zu können. Wie kann man den eine .txt und .html datei runterladen?
 
  • [C++]Textdatei auslesen und in WinAPI ausgeben Beitrag #16
Anno1989

Anno1989

Bekanntes Mitglied
Dabei seit
30.04.2006
Beiträge
1.293
Reaktionspunkte
0
Ort
NRW
So?! Oder was ist dir unklar?
 
  • [C++]Textdatei auslesen und in WinAPI ausgeben Beitrag #17
Ultimate Construct

Ultimate Construct

Bekanntes Mitglied
Dabei seit
19.06.2006
Beiträge
4.137
Reaktionspunkte
0
So?! Oder was ist dir unklar?

Eh, was soll das jetzt meiner Frage helfen? Den code hab ich selbst schon?? Da steht nicht drin wie man eine Datei runterläd , sondern nur wie man den Inhalt behällt. Wie kann man den eine .txt und .html datei runterladen?
 
  • [C++]Textdatei auslesen und in WinAPI ausgeben Beitrag #18
Anno1989

Anno1989

Bekanntes Mitglied
Dabei seit
30.04.2006
Beiträge
1.293
Reaktionspunkte
0
Ort
NRW
Schreib den inhalt doch einfach in eine Datei? Mit fopen und fputs z.B. dürfte das gehen?
 
  • [C++]Textdatei auslesen und in WinAPI ausgeben Beitrag #19
Ultimate Construct

Ultimate Construct

Bekanntes Mitglied
Dabei seit
19.06.2006
Beiträge
4.137
Reaktionspunkte
0
Und wo wird der inhalt in den Speicher gespeichert ? ;) Ich meine , dazu muss der buffer irgentwo definiert werden, nur wie soll das gehen wenn der Wert sich immer verändert?... Oder : Alles was am Ende ausgegeben wird, kann man das speichern in eine Datei? Also halt das was mit printf ausgegeben wird in eine Textdatei speichern.
 
  • [C++]Textdatei auslesen und in WinAPI ausgeben Beitrag #20
U

UnimatrixZero

Bekanntes Mitglied
Dabei seit
27.06.2001
Beiträge
645
Reaktionspunkte
0
Eh, was soll das jetzt meiner Frage helfen? Den code hab ich selbst schon?? Da steht nicht drin wie man eine Datei runterläd , sondern nur wie man den Inhalt behällt. Wie kann man den eine .txt und .html datei runterladen?
??? Also Kaffee kocht der Code sicher nicht. Es wird eine Datei per HTTP runtergeladen und im Speicher abgelegt. Du mußt sie nur noch auf Platte schreiben oder was auch immer Du damit hast vorhast.

"buffer" ist ein Zeiger und zeigt auf einen 10000 Byte großen Speicherblock. Dort wird die heruntergeladene Datei abgelegt. Diese Adresse ändert sich jedesmal, aber nicht der Inhalt.

Und nochmal: Dir fehlen die Grundlagen sowohl zu C++ als auch zur Funktionsweise eines Betriebsystems. Die kannst Du Dir nur aneignen, indem Du versuchst, den Code erstmal zu verstehen. Das ist nicht einfach, aber mit ein wenig Fleiß zu schaffen.
 
Thema:

[C++]Textdatei auslesen und in WinAPI ausgeben

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.179
Beiträge
1.579.172
Mitglieder
55.878
Neuestes Mitglied
Satan666
Oben