Zum Inhalt springen

wulfgang

Mitglieder
  • Gesamte Inhalte

    181
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von wulfgang

  1. Morgen, ich wollte auf main.h zugreifen- finde diese aber nicht.:confused: Wenn ich ein Projekt neu baue, habe ich als Headerdatei nur stdafx.h. Wo ist mein main.h denn geblieben?
  2. Hallo, dieses Problem hat sich erledigt. Musste aber auch noch #include "stdafx.h" einfügen. #pragma once #include "stdafx.h" #include <afx.h> #include <afxwin.h> #include <afxinet.h> #include <stdio.h> #include "read_serverlist.h" #include <string.h> using namespace std; //das habe ich gefunden wieso reicht das nicht? class Connect : public read_serverlist { public: Connect(void); static CFtpConnection * Connect::getLastConnection(); static CFtpConnection *connection_pointer; string last_textfile; public: ~Connect(void); };
  3. Hallo, ich habe ein versucht strings einzubinden wie auf 1.5.1 * Klasse string in C++ beschrieben. Erhalte aber #pragma once #include <afx.h> #include <afxwin.h> #include <afxinet.h> #include <stdio.h> #include "read_serverlist.h" #include <string> class Connect : public read_serverlist { public: Connect(void); static CFtpConnection * Connect::getLastConnection(); static CFtpConnection *connection_pointer; string last_textfile; public: ~Connect(void); };
  4. Ich lasse das mit den Stringklassen glaube ich erst mal lieber sein. Wird sonst noch komplöizierter:confused:
  5. Also ich habe jetzt eine Lösung gefunden. Wußte gar nicht, dass ich bei öffentlichen Eigenschaften auch direkt zugreifen kann. aufrufende Umgebung: wcout << LeseListe.servername; Dann nrauche ich ja überhaupt keine extra Funktion zum ausgeben. Auch wenn mich interessieren würde, wie ich hier ein gesamtes Array übergeben kann. Muss ja irgendwie die Adresse eines Zeiger auf die entsprechende Eigeschaft sein, oder?
  6. Hallo, ich hatte in der Zwischenzeit noch eine andere Lösung probiert.Ich erzeuge ein Objekt und greife anschließend auf die Eigenschaft zu. Dann brauche ich ja nicht mit static und so weiter tricksen. Wenn ich statt wchar_t int verwende funktioniert es auch. Bei wchar_t wird wird jedoch nichts ausgegeben. read_serverlist::read_serverlist(void) { GetPrivateProfileString(szSectionName, szKeyName_s, DefaultValue, servername, (sizeof(servername))/(sizeof(wchar_t)), szFilename); cout << GetLastError()<<"\n"; wcout << servername << "\n"; //Hier wird noch richtig ausgegeben } wchar_t read_serverlist::give_data(void) { cout << "test"; //ausgegeben return servername[250]; } Aufrudende Umgebung read_serverlist LeseListe; wcout << LeseListe.give_data();//Hier wird nichts ausgegeben, bei int als Rückgabe funktioniert es jedoch In read_serverlist.h #pragma once class read_serverlist { public: read_serverlist(void); wchar_t read_serverlist::give_data(void); wchar_t servername[250]; //bei Eigenschaft als int funktioniert wchar_t login_user[250]; wchar_t password[150]; wchar_t source_txt[150]; wchar_t destination_txt[250]; wchar_t destination_folder[250]; public: ~read_serverlist(void); };
  7. In meinem Fall leider nicht. Deswegen hatte ich auf catch gehofft. Während der Ausführung des Programms erhalte ich: wchar_t* read_serverlist::servername; read_serverlist::read_serverlist(void) { GetPrivateProfileString(szSectionName, szKeyName_s, DefaultValue, servername,//vom Compiler markiert (sizeof(servername))/(sizeof(wchar_t)), szFilename);//vom Compiler markiert cout << GetLastError()<<"\n"; wcout << servername << "\n";//vom Compiler markiert } In read_serverlist.h #pragma once class read_serverlist { public: read_serverlist(void); static wchar_t *read_serverlist::give_data(void); static wchar_t *servername; wchar_t login_user[50]; wchar_t password[50]; wchar_t source_txt[50]; wchar_t destination_txt[50]; wchar_t destination_folder[50]; public: ~read_serverlist(void); };
  8. Okay, das wußte ich nicht. Ja ich benutze ja in anderen Klassen zum Beispiel auch CInternetSession. Wie kann ich denn sonst einen Fehler abfangen, wenn keine Exceptions ausgeworfen werden?
  9. ja Hier alle Meldungen aufgelistet Bevor ich versucht habe, das Exception-Handling einzubauen, hatte ich keine Fehler. Die Variablen wie nameserver, login_user, password habe ich als wchar_t in der Headerdatei definiert. #include "StdAfx.h" #include "read_serverlist.h" #include <windows.h> #include <fstream> #include <wchar.h> #include <wctype.h> #include <iostream> using namespace std; wchar_t DefaultValue[50] = L"DefaultValue"; wchar_t* read_serverlist::servername; read_serverlist::read_serverlist(void) { wchar_t szSectionName[] = L"name"; wchar_t szKeyName_s[] = L"server"; wchar_t szFilename[] = L"C:/Dokumente und Einstellungen/user/Eigene Dateien/Visual Studio 2005/Projects/automatic_transfer.sln/serverlist.ini"; //Hier den pfad der ini eintragen wchar_t nameserver[256]; try { //Servername wird aus INI-Datei gelesen int laenge; //Ist nur eine Hilfsvariable um den Rückgabewert zu pruefen GetPrivateProfileString(szSectionName, szKeyName_s, DefaultValue, nameserver, (sizeof(nameserver))/(sizeof(wchar_t)), szFilename); cout << GetLastError()<<"\n"; wcout << nameserver << "\n"; servername=nameserver; wcout << servername; } catch(CException* error) { TCHAR szCause[1024]; error->GetErrorMessage(szCause,1024); printf_s("ERROR! %S\n", szCause); error->Delete(); } //User wird aus INI-Datei gelesen wchar_t szKeyName_u[] = L"login_user"; laenge=GetPrivateProfileString(szSectionName, szKeyName_u, DefaultValue, login_user, (sizeof(login_user))/(sizeof(wchar_t)), szFilename); wcout << login_user; cout << laenge << "\n"; //Passwort wird aus INI-Datei gelesen wchar_t szKeyName_p[] = L"password"; laenge=GetPrivateProfileString(szSectionName, szKeyName_p, DefaultValue, password, (sizeof(password))/(sizeof(wchar_t)), szFilename); wcout << password ; cout << laenge << "\n"; //Herkunft der Textdatei wird aus INI-Datei gelesen wchar_t szKeyName_t_s[] = L"source_txt"; laenge=GetPrivateProfileString(szSectionName, szKeyName_t_s, DefaultValue, source_txt, (sizeof(source_txt))/(sizeof(wchar_t)), szFilename); wcout << source_txt ; cout << laenge << "\n"; //Ziel der Textdatei wird aus INI-Datei gelesen wchar_t szKeyName_t_d[] = L"destination_txt"; laenge=GetPrivateProfileString(szSectionName, szKeyName_t_d, DefaultValue, destination_txt, (sizeof(destination_txt))/(sizeof(wchar_t)), szFilename); wcout << destination_txt ; cout << laenge << "\n"; //Ziel der zu übertragenden Daten wird gelesen wchar_t szKeyName_f_d[] = L"destination_folder"; laenge=GetPrivateProfileString(szSectionName, szKeyName_f_d, DefaultValue, destination_folder, (sizeof(destination_folder))/(sizeof(wchar_t)), szFilename); wcout << destination_folder ; cout << laenge << "\n"; }
  10. Hallo, ich bekomme bei der Anwendung von catch auf einmal lauter Fehler. D try { //Servername wird aus INI-Datei gelesen int laenge; //Ist nur eine Hilfsvariable um den Rückgabewert zu pruefen GetPrivateProfileString(szSectionName, szKeyName_s, DefaultValue, servername, (sizeof(servername))/(sizeof(wchar_t)), szFilename); cout << GetLastError()<<"\n"; wcout << servername << "\n"; } catch (CException *error_read) { TCHAR szCause[1024]; error_read->GetErrorMessage(szCause,1024); printf_s("ERROR! %S\n", szCause); error_read->Delete(); } Das ist nur ein Teil der Fehlermeldungen. ich verstehe hier einfach nicht warum undeclared identifier-ich error_read doch definiert.
  11. Nein, die Werte zu einer kompletten Sektion werden alle im Konstruktor von meiner Klasse read_serverlist eingelesen. Wäre es nicht eine Lösung, dass ich für jede Sektion ein Objekt erschaffe und dass in diesem Objekt dann die eingelesenden Eigenschaften gespeichert werden?
  12. Der Wert von servername soll in einer anderen Klasse in einer Methode verwendet werden. In diesem Fall möchte ich ,dass eine Methode in einer Klasse Connect den Wert verwendet, um eine Verbindung zu einem Server herzustellen.Das gleiche gilt für andere Werte. die ich mit GetPrivateProfileString aus der Ini-datei einlese.
  13. War so sehr darin vertieft, dass ich daran nicht gedacht habe Ja: read_serverlist::read_serverlist(void) { wchar_t nameserver[256]; GetPrivateProfileString(szSectionName, szKeyName_s, DefaultValue, nameserver, (sizeof(nameserver))/(sizeof(wchar_t)), szFilename); servername=nameserver; wcout << servername; //Hier wird servername noch richtig ausgegeben .. } Ist kein guter Stil, ich weiß. Aber wie denn sonst? Müsste ich nameserver als Eigenschaft der Klasse in der Headerdatei deklarieren?
  14. read_serverlist::read_serverlist(void) { GetPrivateProfileString(szSectionName, szKeyName_s, DefaultValue, nameserver, (sizeof(nameserver))/(sizeof(wchar_t)), szFilename); servername=nameserver; wcout << servername; //Hier wird servername noch richtig ausgegeben } nameserver ist also ein String aus eine ini-Datei. nameserver ist wohl nicht mehr gültig? Dann muss ich nameserver auch global und statisch definieren?
  15. Hallo, ich wollte eigentlich eine Methode schreiben, die einen Wert für andere Klassen und die aufrufende Umgebung zugänglich macht. Die Methode zum Ausgeben wird auch aufgerufen. Es wird jedoch nicht der Wert von servername ausgegeben. In read_serverlist.cpp wchar_t* read_serverlist::servername; read_serverlist::read_serverlist(void) { servername=nameserver; wcout << servername; //Hier wird servername noch richtig ausgegeben } wchar_t *read_serverlist::give_data(void) { cout << "test"; //test wird ausgegeben return servername; //wird nicht ausgegeben } In read_serverlist.h #pragma once class read_serverlist { public: read_serverlist(void); static wchar_t *read_serverlist::give_data(void); static wchar_t *servername; public: ~read_serverlist(void); }; in aufrufender Umgebung: wcout << read_serverlist::servername << " Das sollte der Severname sein";//Hier wird nichts ausgegeben
  16. Jaaaa, danke!! Es läuft. Das war das Problem.:D
  17. Der 3.Parameter von CFtpConnection::GetFile ist doch BOOL bFailIfExists. Wenn ich nun BOOL bGot = connection_pointer->GetFile(_T("bu.txt"),_T("C:/CPlusPlus/TxtTransfer"),FALSE); sollte es doch auf jeden Fall funktionieren? Ich erhalte aber immer noch den gleichen Fehler.
  18. Jo, danke mit einzelen Slashes funktioniert es.
  19. Morgen, ich wechsel jetzt erst in das Zielverzeichnis. Dann erhalte ich als Ausgabe auf dem Bildschirm: Fehler 5 steht ja für Heißt das nun, dass ich keine Rechte habe? Wenn ich einzelne Backslashes benutze, erhalte ich als Fehlermeldung Nummer 80 transfer_textfile::transfer_textfile(void) { Connect(); CFtpConnection* connection_pointer; connection_pointer=Connect::getLastConnection(); CFtpFileFind finder(connection_pointer); try { if(connection_pointer->SetCurrentDirectory(_T("ordner/bu"))) { cout<<"Verzeichnis wurde mit Erfolg! gewechselt\n"; BOOL bWorking = finder.FindFile(_T("bu.txt")); if(bWorking) { BOOL bGot = connection_pointer->GetFile(_T("bu.txt"),_T("C:/Ordner/TxtTransfer")); if (bGot) { cout << "Transfer sollte erfolgt sein\n"; } else { cout << GetLastError() << "\n"; } } else { cout << "The File specified could not be found.!"<<GetLastError(); } } else { DWORD dwInfo = 0; TCHAR puffer[250] = _T(""); DWORD dwSize = sizeof(puffer) / sizeof(TCHAR); if( !InternetGetLastResponseInfo(&dwInfo, puffer, &dwSize) ) { cout << GetLastError(); cout << "Aufruf InternetGetLastResponseInfo nicht erfolgreich"; } else { wcout << puffer; cout << "Aufruf InternetGetLastResponseInfo erfolgreich"; } } } catch(CException* error) { TCHAR szCause[1024]; error->GetErrorMessage(szCause,1024); printf_s("ERROR! %S\n", szCause); error->Delete(); } }
  20. Ist das die einzige Fehlerquelle oder gibt es noch irgendeine andere potentielle Möglichkeit?
  21. Also habe mir jetzt puffer ausgeben lassen: Die Fehler 550 habe ich nirgendswo gefunden. Der Pfadname ist auch abgeschnitten. Der vollständige Pfad lautet Was ist daran verboten? transfer_textfile::transfer_textfile(void) { Connect(); CFtpConnection* connection_pointer; connection_pointer=Connect::getLastConnection(); CFtpFileFind finder(connection_pointer); try { if(connection_pointer->SetCurrentDirectory(_T("Onlino Irgendwo\\automatic\\uuu"))) { cout<<"...mit Erfolg!\n"; BOOL bWorking = finder.FindFile(_T("file.txt")); if(bWorking) { BOOL bGot = connection_pointer->GetFile(_T("file.txt"),_T("C:\\CPlusPlus\\TxtTransfer")); } else { //something wrong with the file.. inform the user cout << "The File specified could not be found.!"<<GetLastError(); } } else { DWORD dwInfo = 0; TCHAR puffer[50] = _T(""); DWORD dwSize = sizeof(puffer) / sizeof(TCHAR); if( !InternetGetLastResponseInfo(&dwInfo, puffer, &dwSize) ) { cout << GetLastError(); cout << "Aufruf InternetGetLastResponseInfo nicht erfolgreich"; } else { wcout << puffer; cout << "Aufruf InternetGetLastResponseInfo erfolgreich"; } } } catch(CException* error) { TCHAR szCause[1024]; error->GetErrorMessage(szCause,1024); printf_s("ERROR! %S\n", szCause); error->Delete(); } }
  22. Moin, war dein ! Absicht? Ich erhalte jetzt DWORD dwInfo = 0; TCHAR puffer[50] = _T(""); DWORD dwSize = sizeof(puffer) / sizeof(TCHAR); if( InternetGetLastResponseInfo(&dwInfo, puffer, &dwSize) ) { cout << GetLastError(); }
  23. In der MSDN steht doch Deswegen habe ich daraus einen Zeiger. Habe ich weggenommen. Soll das Ergebnis von sizeof dann wieder durch wchar_t geteilt werden? Dann erhalte ich logischerweise vom Compiler Ich habe doch durch (sizeof(wchar_t)) geteilt? DWORD dwInfo; wchar_t puffer[50]; wchar_t *pszResponse = puffer; wchar_t *dwLength = (sizeof(puffer))/(sizeof(wchar_t)); InternetGetLastResponseInfo(&dwInfo, pszResponse , dwLength); cout << GetLastError();
  24. Funktioniert so aber noch nicht ganz. Wollte die Größe des Buffers eigentlich mit sizeof ermitteln. Aber sizeof gibt wohl einen falschen Datentyp zurück. DWORD dwInfo; TCHAR puffer[50]; TCHAR *pszResponse = puffer; DWORD *dwLength= sizeof(puffer); InternetGetLastResponseInfo(&dwInfo, (LPTSTR)pszResponse , dwLength); cout << GetLastError();

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...