<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Probleme Mit Wininetapi]]></title><description><![CDATA[<p>Hallo erstmal, ich habe folgendes Problem und zwar lese ich einen Ordner per FTPFindFirstFile und FTPFindNextFile aus. Die Dateinamen bekomme ich auch ausgegeben soweit funktioniert es. Nun möchte ich in einer while Schleife die dateien öffnen und deren inhalt lokal speichern, aber die Dateien lassen sich nicht öffnen. Nur die erste wird erfolgreich geöffnet. Was ist an dem Code falsch?</p>
<p>Vielen Dank für die Hilfe im vorraus.</p>
<pre><code class="language-cpp">bool ::sync::ReadAll(HWND hwnd){
     status s;
     init in;

     s.iArt=1;
     s.SetStatus(&quot;Verbinden mit...&quot;,hwnd);
///////////////////////////////////////////////////////////////////////////////////////////////
     HINTERNET hInetOpen, hInetConnect;
     FILE* datei; 
     char szUserPfad[255], szMemberPfad[255], szNotesPfad[255], directory_ftp[]=&quot;intern/users&quot;, szBuff[255];
     std::string pfad, status;
     HINTERNET file, notes;
     char buff[4096] = &quot;&quot;;
     DWORD dwBytesRead;     

 GetPrivateProfileString(szBenutzer,&quot;ftp&quot;,&quot;NULL&quot;,host,255,in.Pfad());
 GetPrivateProfileString(szBenutzer,&quot;benutzer&quot;,&quot;NULL&quot;,user,255,in.Pfad());     
 GetPrivateProfileString(szBenutzer,&quot;passw&quot;,&quot;NULL&quot;,pass,255,in.Pfad());      
 GetPrivateProfileString(szBenutzer,&quot;users&quot;,&quot;NULL&quot;,szUserPfad,255,in.Pfad());
 GetPrivateProfileString(szBenutzer,&quot;notes&quot;,&quot;NULL&quot;,szNotesPfad,255,in.Pfad());     
 GetPrivateProfileString(szBenutzer,&quot;member&quot;,&quot;NULL&quot;,szMemberPfad,255,in.Pfad());       

        hInetOpen = InternetOpen(&quot;FTP&quot;,INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); 
        hInetConnect = InternetConnect(hInetOpen, host, INTERNET_DEFAULT_FTP_PORT,
                   user, pass, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);

        if((hInetOpen || hInetConnect) == 0){
            s.SetStatus(&quot;Keine Verbindung&quot;,hwnd);
        }else{
            s.SetStatus(host,hwnd);          
            if(FtpSetCurrentDirectory(hInetConnect, directory_ftp)){
                status  = &quot;In Ordner &quot;;                                    
                status += directory_ftp;
                status += &quot; gewechselt&quot;;
                s.SetStatus(const_cast&lt;char*&gt;(status.c_str()),hwnd);                                           
            }
            ///Hier User updaten
               WIN32_FIND_DATA wfd;      
               HINTERNET hFile = FtpFindFirstFile(hInetConnect, TEXT(&quot;*&quot;), &amp;wfd, 0, (DWORD_PTR)this);

               //hFile = hTemp;
               if (hFile == NULL)
               {
                     s.SetStatus(&quot;Fehler Dateien nicht geöffnet&quot;,hwnd);
                     return 0;
               }
               BOOL bResult = TRUE;
                while (bResult)
                {
                   if(strcmp(wfd.cFileName, &quot;..&quot;)){
                       sprintf(szBuff, &quot;Datei:  %s wird behandelt.&quot;, wfd.cFileName);                                   
                       status = szBuff;
                       s.SetStatus(const_cast&lt;char*&gt;(status.c_str()),hwnd);

                       file =  FtpOpenFile(hInetConnect, // Handle to the ftp session 
                               wfd.cFileName, // filename (auch find first file)
                               GENERIC_READ, // dwAccess 
                               FTP_TRANSFER_TYPE_BINARY, // dwFlags 
                               0); // This is the context used for callbacks. 

                       if(file){
                        s.SetStatus(&quot;Datei geöffnet&quot;,hwnd);                       
                       // Read the response
                       if(InternetReadFile(file, 
                                           buff,
                                           4095,
                                           &amp;dwBytesRead))
                       s.SetStatus(&quot;Datei gelesen&quot;,hwnd);   

                       pfad  = szUserPfad;
                       pfad += wfd.cFileName;

                       datei = fopen(pfad.c_str(),&quot;w+&quot;); 
                       if(datei==NULL) 
                          s.SetStatus(&quot;Fehler beim Schreiben&quot;,hwnd);  
                       else{

                       fprintf(datei,&quot;%s&quot;, buff); 
                       fclose(datei);                                   
                       }}  
                       }
                bResult = InternetFindNextFile(hFile, &amp;wfd);
                }
                InternetCloseHandle(hFile);

            ///Hier User updaten            
            sprintf(directory_ftp,&quot;../notes&quot;);            
            if(FtpSetCurrentDirectory(hInetConnect, directory_ftp)){
                status  = &quot;In Ordner &quot;;                                    
                status += directory_ftp;
                status += &quot; gewechselt&quot;;
                s.SetStatus(const_cast&lt;char*&gt;(status.c_str()),hwnd);                                           
            }
            ///Hier Notizen updaten
            ///Hier Notizen updaten            
            sprintf(directory_ftp,&quot;../member&quot;);
            if(FtpSetCurrentDirectory(hInetConnect, directory_ftp)){
                status  = &quot;In Ordner &quot;;                                    
                status += directory_ftp;
                status += &quot; gewechselt&quot;;
                s.SetStatus(const_cast&lt;char*&gt;(status.c_str()),hwnd);                                           
            }
            ///Hier Beiträge updaten                        
            ///Hier Beiträge updaten             

            s.SetStatus(&quot;Erfolgreich aktualisiert&quot;,hwnd);  
            }

        InternetCloseHandle(hInetOpen);
        InternetCloseHandle(hInetConnect);

        s.iArt=0;
        s.SetStatus(&quot;Verbindungen Getrennt!&quot;,hwnd);

     MessageBox(NULL, &quot;Die Vereinsmitglieder wurden erfolgreich vom Server geladen!&quot;,&quot;Geladen&quot;,MB_OK);
     }
</code></pre>
<p>(Erstmal soll er den ersten Ordner syncronisieren, in die anderen wechselt er nur schonmal.)</p>
<p>Danke für eure Hilfe im Vorraus</p>
<p>Sönke</p>
<p>PS: SteStatus gibt den Status aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/200803/probleme-mit-wininetapi</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 10:19:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/200803.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 19 Dec 2007 21:05:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme Mit Wininetapi on Wed, 19 Dec 2007 21:05:23 GMT]]></title><description><![CDATA[<p>Hallo erstmal, ich habe folgendes Problem und zwar lese ich einen Ordner per FTPFindFirstFile und FTPFindNextFile aus. Die Dateinamen bekomme ich auch ausgegeben soweit funktioniert es. Nun möchte ich in einer while Schleife die dateien öffnen und deren inhalt lokal speichern, aber die Dateien lassen sich nicht öffnen. Nur die erste wird erfolgreich geöffnet. Was ist an dem Code falsch?</p>
<p>Vielen Dank für die Hilfe im vorraus.</p>
<pre><code class="language-cpp">bool ::sync::ReadAll(HWND hwnd){
     status s;
     init in;

     s.iArt=1;
     s.SetStatus(&quot;Verbinden mit...&quot;,hwnd);
///////////////////////////////////////////////////////////////////////////////////////////////
     HINTERNET hInetOpen, hInetConnect;
     FILE* datei; 
     char szUserPfad[255], szMemberPfad[255], szNotesPfad[255], directory_ftp[]=&quot;intern/users&quot;, szBuff[255];
     std::string pfad, status;
     HINTERNET file, notes;
     char buff[4096] = &quot;&quot;;
     DWORD dwBytesRead;     

 GetPrivateProfileString(szBenutzer,&quot;ftp&quot;,&quot;NULL&quot;,host,255,in.Pfad());
 GetPrivateProfileString(szBenutzer,&quot;benutzer&quot;,&quot;NULL&quot;,user,255,in.Pfad());     
 GetPrivateProfileString(szBenutzer,&quot;passw&quot;,&quot;NULL&quot;,pass,255,in.Pfad());      
 GetPrivateProfileString(szBenutzer,&quot;users&quot;,&quot;NULL&quot;,szUserPfad,255,in.Pfad());
 GetPrivateProfileString(szBenutzer,&quot;notes&quot;,&quot;NULL&quot;,szNotesPfad,255,in.Pfad());     
 GetPrivateProfileString(szBenutzer,&quot;member&quot;,&quot;NULL&quot;,szMemberPfad,255,in.Pfad());       

        hInetOpen = InternetOpen(&quot;FTP&quot;,INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); 
        hInetConnect = InternetConnect(hInetOpen, host, INTERNET_DEFAULT_FTP_PORT,
                   user, pass, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);

        if((hInetOpen || hInetConnect) == 0){
            s.SetStatus(&quot;Keine Verbindung&quot;,hwnd);
        }else{
            s.SetStatus(host,hwnd);          
            if(FtpSetCurrentDirectory(hInetConnect, directory_ftp)){
                status  = &quot;In Ordner &quot;;                                    
                status += directory_ftp;
                status += &quot; gewechselt&quot;;
                s.SetStatus(const_cast&lt;char*&gt;(status.c_str()),hwnd);                                           
            }
            ///Hier User updaten
               WIN32_FIND_DATA wfd;      
               HINTERNET hFile = FtpFindFirstFile(hInetConnect, TEXT(&quot;*&quot;), &amp;wfd, 0, (DWORD_PTR)this);

               //hFile = hTemp;
               if (hFile == NULL)
               {
                     s.SetStatus(&quot;Fehler Dateien nicht geöffnet&quot;,hwnd);
                     return 0;
               }
               BOOL bResult = TRUE;
                while (bResult)
                {
                   if(strcmp(wfd.cFileName, &quot;..&quot;)){
                       sprintf(szBuff, &quot;Datei:  %s wird behandelt.&quot;, wfd.cFileName);                                   
                       status = szBuff;
                       s.SetStatus(const_cast&lt;char*&gt;(status.c_str()),hwnd);

                       file =  FtpOpenFile(hInetConnect, // Handle to the ftp session 
                               wfd.cFileName, // filename (auch find first file)
                               GENERIC_READ, // dwAccess 
                               FTP_TRANSFER_TYPE_BINARY, // dwFlags 
                               0); // This is the context used for callbacks. 

                       if(file){
                        s.SetStatus(&quot;Datei geöffnet&quot;,hwnd);                       
                       // Read the response
                       if(InternetReadFile(file, 
                                           buff,
                                           4095,
                                           &amp;dwBytesRead))
                       s.SetStatus(&quot;Datei gelesen&quot;,hwnd);   

                       pfad  = szUserPfad;
                       pfad += wfd.cFileName;

                       datei = fopen(pfad.c_str(),&quot;w+&quot;); 
                       if(datei==NULL) 
                          s.SetStatus(&quot;Fehler beim Schreiben&quot;,hwnd);  
                       else{

                       fprintf(datei,&quot;%s&quot;, buff); 
                       fclose(datei);                                   
                       }}  
                       }
                bResult = InternetFindNextFile(hFile, &amp;wfd);
                }
                InternetCloseHandle(hFile);

            ///Hier User updaten            
            sprintf(directory_ftp,&quot;../notes&quot;);            
            if(FtpSetCurrentDirectory(hInetConnect, directory_ftp)){
                status  = &quot;In Ordner &quot;;                                    
                status += directory_ftp;
                status += &quot; gewechselt&quot;;
                s.SetStatus(const_cast&lt;char*&gt;(status.c_str()),hwnd);                                           
            }
            ///Hier Notizen updaten
            ///Hier Notizen updaten            
            sprintf(directory_ftp,&quot;../member&quot;);
            if(FtpSetCurrentDirectory(hInetConnect, directory_ftp)){
                status  = &quot;In Ordner &quot;;                                    
                status += directory_ftp;
                status += &quot; gewechselt&quot;;
                s.SetStatus(const_cast&lt;char*&gt;(status.c_str()),hwnd);                                           
            }
            ///Hier Beiträge updaten                        
            ///Hier Beiträge updaten             

            s.SetStatus(&quot;Erfolgreich aktualisiert&quot;,hwnd);  
            }

        InternetCloseHandle(hInetOpen);
        InternetCloseHandle(hInetConnect);

        s.iArt=0;
        s.SetStatus(&quot;Verbindungen Getrennt!&quot;,hwnd);

     MessageBox(NULL, &quot;Die Vereinsmitglieder wurden erfolgreich vom Server geladen!&quot;,&quot;Geladen&quot;,MB_OK);
     }
</code></pre>
<p>(Erstmal soll er den ersten Ordner syncronisieren, in die anderen wechselt er nur schonmal.)</p>
<p>Danke für eure Hilfe im Vorraus</p>
<p>Sönke</p>
<p>PS: SteStatus gibt den Status aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423458</guid><dc:creator><![CDATA[soeni]]></dc:creator><pubDate>Wed, 19 Dec 2007 21:05:23 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme Mit Wininetapi on Thu, 20 Dec 2007 10:37:33 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-403.html" rel="nofollow">HumeSikkins</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html" rel="nofollow">C++</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-4.html" rel="nofollow">WinAPI</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423653</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Thu, 20 Dec 2007 10:37:33 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme Mit Wininetapi on Sat, 22 Dec 2007 14:24:28 GMT]]></title><description><![CDATA[<p>Kann mir hier keiner helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1424820</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1424820</guid><dc:creator><![CDATA[soeni]]></dc:creator><pubDate>Sat, 22 Dec 2007 14:24:28 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme Mit Wininetapi on Sat, 22 Dec 2007 15:26:15 GMT]]></title><description><![CDATA[<p>Du solltest vermutlich die Fehlermeldung posten...<br />
Also, bitte Rückgabewerte abfragen und bei Fehler entsprechend ausgeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1424842</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1424842</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sat, 22 Dec 2007 15:26:15 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme Mit Wininetapi on Sun, 23 Dec 2007 08:31:42 GMT]]></title><description><![CDATA[<p>so nun hab ich den fehlercode ausgelesen (ich hoffe, dass ichs richtig gemacht habe) er wird jezt in meinem status angezeigt. es ist der fehlercode 12110<br />
mit dem kann ich aber auch nichts anfangen.</p>
<p>hier nochmal der code mit fehlerausgabe:</p>
<pre><code class="language-cpp">bool ::sync::ReadAll(HWND hwnd){
     status s;
     init in;

     s.iArt=1;
     s.SetStatus(&quot;Verbinden mit...&quot;,hwnd);
///////////////////////////////////////////////////////////////////////////////////////////////
     HINTERNET hInetOpen, hInetConnect;
     FILE* datei; 
     char szUserPfad[255], szMemberPfad[255], szNotesPfad[255], directory_ftp[]=&quot;intern/users&quot;, szBuff[255];
     std::string pfad, status, statuss;
     HINTERNET file, notes;
     char buff[4096] = &quot;&quot;;
     DWORD dwBytesRead;     

 GetPrivateProfileString(szBenutzer,&quot;ftp&quot;,&quot;NULL&quot;,host,255,in.Pfad());
 GetPrivateProfileString(szBenutzer,&quot;benutzer&quot;,&quot;NULL&quot;,user,255,in.Pfad());     
 GetPrivateProfileString(szBenutzer,&quot;passw&quot;,&quot;NULL&quot;,pass,255,in.Pfad());      
 GetPrivateProfileString(szBenutzer,&quot;users&quot;,&quot;NULL&quot;,szUserPfad,255,in.Pfad());
 GetPrivateProfileString(szBenutzer,&quot;notes&quot;,&quot;NULL&quot;,szNotesPfad,255,in.Pfad());     
 GetPrivateProfileString(szBenutzer,&quot;member&quot;,&quot;NULL&quot;,szMemberPfad,255,in.Pfad());       

        hInetOpen = InternetOpen(&quot;FTP&quot;,INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); 
        hInetConnect = InternetConnect(hInetOpen, host, INTERNET_DEFAULT_FTP_PORT,
                   user, pass, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);

        if((hInetOpen || hInetConnect) == 0){
            s.SetStatus(&quot;Keine Verbindung&quot;,hwnd);
        }else{
            s.SetStatus(host,hwnd);          
            if(FtpSetCurrentDirectory(hInetConnect, directory_ftp)){
                status  = &quot;In Ordner &quot;;                                    
                status += directory_ftp;
                status += &quot; gewechselt&quot;;
                s.SetStatus(const_cast&lt;char*&gt;(status.c_str()),hwnd);                                           
            }
            ///Hier User updaten
               WIN32_FIND_DATA wfd;      
               HINTERNET hFile = FtpFindFirstFile(hInetConnect, TEXT(&quot;*&quot;), &amp;wfd, 0, (DWORD_PTR)this);

               //hFile = hTemp;
               if (hFile == NULL)
               {
                     s.SetStatus(&quot;Fehler Dateien nicht geöffnet&quot;,hwnd);
                     return 0;
               }
               BOOL bResult = TRUE;
                while (bResult)
                {
                   if(strcmp(wfd.cFileName, &quot;..&quot;)){
                       sprintf(szBuff, &quot;Datei:  %s wird behandelt.&quot;, wfd.cFileName);                                   
                       status = szBuff;
                       s.SetStatus(const_cast&lt;char*&gt;(status.c_str()),hwnd);

                       file =  FtpOpenFile(hInetConnect, // Handle to the ftp session 
                               wfd.cFileName, // filename (aud find first file)
                               GENERIC_READ, // dwAccess 
                               FTP_TRANSFER_TYPE_BINARY, // dwFlags 
                               0); // This is the context used for callbacks.    
                       if(file){
                        s.SetStatus(&quot;Datei geöffnet&quot;,hwnd);                       
                       // Read the response
                       if(InternetReadFile(file, 
                                           buff,
                                           4095,
                                           &amp;dwBytesRead))
                       s.SetStatus(&quot;Datei gelesen&quot;,hwnd);   

                       pfad  = szUserPfad;
                       pfad += wfd.cFileName;

                       datei = fopen(pfad.c_str(),&quot;w+&quot;); 
                       if(datei==NULL) 
                          s.SetStatus(&quot;Fehler beim Schreiben&quot;,hwnd);  
                       else{

                       fprintf(datei,&quot;%s&quot;, buff); 
                       fclose(datei);                                   
                       }
                       }else{
                             ///////////////////////////////////

                             //////////////////////////////
                             char ab[500];
                             sprintf(ab,&quot;%d&quot;,GetLastError());
                             if(GetLastError() == ERROR_FILE_NOT_FOUND) sprintf(ab,&quot;Datei nicht gefunden&quot;);
                             statuss  = &quot;Fehler: &quot;;
                             statuss += ab;
                             statuss += &quot; (Datei öffnen)&quot;;
                             s.SetStatus(const_cast&lt;char*&gt;(statuss.c_str()),hwnd);
                             }  
                       }
                bResult = InternetFindNextFile(hFile, &amp;wfd);
                }
                InternetCloseHandle(hFile);

            ///Hier User updaten            
            sprintf(directory_ftp,&quot;../notes&quot;);            
            if(FtpSetCurrentDirectory(hInetConnect, directory_ftp)){
                status  = &quot;In Ordner &quot;;                                    
                status += directory_ftp;
                status += &quot; gewechselt&quot;;
                s.SetStatus(const_cast&lt;char*&gt;(status.c_str()),hwnd);                                           
            }
            ///Hier Notizen updaten
            ///Hier Notizen updaten            
            sprintf(directory_ftp,&quot;../member&quot;);
            if(FtpSetCurrentDirectory(hInetConnect, directory_ftp)){
                status  = &quot;In Ordner &quot;;                                    
                status += directory_ftp;
                status += &quot; gewechselt&quot;;
                s.SetStatus(const_cast&lt;char*&gt;(status.c_str()),hwnd);                                           
            }
            ///Hier Beiträge updaten                        
            ///Hier Beiträge updaten             

            s.SetStatus(&quot;Erfolgreich aktualisiert&quot;,hwnd);  
            }

        InternetCloseHandle(hInetOpen);
        InternetCloseHandle(hInetConnect);

        s.iArt=0;
        s.SetStatus(&quot;Verbindungen Getrennt!&quot;,hwnd);

     MessageBox(NULL, &quot;Die Vereinsmitglieder wurden erfolgreich vom Server geladen!&quot;,&quot;Geladen&quot;,MB_OK);
     }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1425080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1425080</guid><dc:creator><![CDATA[soeni]]></dc:creator><pubDate>Sun, 23 Dec 2007 08:31:42 GMT</pubDate></item></channel></rss>