Benvenuto! Per postare e godere delle funzionalità del forum registrati, occorrono pochi secondi ed è gratis!

[Guida] C++ scrivere e leggere file di testo(settaggi) via WEB
(Questo messaggio è stato modificato l'ultima volta il: 28/07/2014, 16:51 da Admin.)

Iscritto
Messaggi: 270
Discussioni: 40
Registrato: 10-2013
Mix: 0
Ciao amici di hackmix, qualcuno di voi si ricorda questo post di digger?
http://hackmix.altervista.org/Thread-C-s...o-settaggi

Bene, quello che vi voglio proporre oggi, è quasi la stessa cosa, solo con l'aggiunta di internet, ovvero, i settaggi , invece di scriverceli noi direttamente dal programma , li scarichiamo da internet e poi li leggiamo Happywide

quindi una cosa tipo questa :

    C++ Programming
  1. #include <windows.h>
  2. #include <wininet.h>
  3. #include <iostream>
  4. #include <fstream>
  5. #include <string>
  6. #include <map>
  7. #pragma comment(lib, "wininet.lib")
  8. using namespace std;
  9. typedef map<string, string> settingsMap;
  10.  
  11.  
  12.  
  13. int GETURLPAGE(char *link, char * buffer, int maxsize)
  14. {
  15. HINTERNET hSession;
  16. HINTERNET hURL;
  17. DWORD dwBYTEsRead;
  18. int ok = 0;
  19. buffer[0] = 0;
  20. hSession = InternetOpenA("Microsoft Internet Explorer", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, NULL); // defaults
  21. if (hSession)
  22. {
  23. hURL = InternetOpenUrlA(hSession, link, NULL, 0, 0, 0);
  24. if (hURL)
  25. {
  26. InternetReadFile(hURL, (LPSTR)buffer, (DWORD)maxsize, &dwBYTEsRead);
  27. InternetCloseHandle(hURL);
  28.  
  29. buffer[dwBYTEsRead] = 0;
  30. ok = (int)dwBYTEsRead;
  31. }
  32. InternetCloseHandle(hSession);
  33. }
  34. return ok;
  35. }
  36. void scrivi_settaggi(const char* filename)
  37. {
  38. char Code[256] = "";
  39. if ( GETURLPAGE("http://tuosito/File.php", Code, 256) == 0)return;
  40.  
  41. ofstream settings_file(filename);
  42. if (!settings_file.bad())
  43. {
  44. settings_file << Code << endl;
  45. settings_file.close();
  46. }
  47.  
  48. }
  49. void leggi_settaggi(const char* filename, settingsMap &sets)
  50. {
  51. size_t found;
  52. string line;
  53. string token;
  54. string value;
  55. ifstream settings_file(filename);
  56. while (settings_file.good())
  57. {
  58. getline(settings_file, line);
  59. if (line.length()>0)
  60. {
  61. found = line.find("=");
  62. token = line.substr(0, found);
  63. value = line.substr(found + 1, line.length() - found);
  64. sets[token] = value;
  65. }
  66. }
  67. settings_file.close();
  68. }
  69.  
  70. int main()
  71. {
  72. const char* filename = "dati.txt";
  73. scrivi_settaggi(filename);
  74.  
  75. settingsMap settings;
  76.  
  77. string fString; // Dichiaro una stringa
  78. cout << "Scrivi l'ID : ";
  79. getline(cin, fString);//scrivo l'ID
  80. cout << endl;
  81. leggi_settaggi(filename, settings);//Leggo i settaggi
  82.  
  83. if ( !fString.empty() && !settings[fString].empty() )// Se la stringa non è vuota e neanche il suo relativo settaggio non è vuoto
  84.  
  85. cout << "Password " << fString << " = " << settings[fString] << endl;
  86.  
  87. else
  88.  
  89. cout << "Errore! L'ID inserito non esiste o non e' stato scritto correttamente" << endl;
  90.  
  91. system("pause");
  92. return 0;
  93. }



Ok, allora tralasciando GETURLPAGE che l'ho preso da internet e serve solamente ad aprire e leggere il contenuto della pagina, passiamo a scrivi_settaggi,
    C++ Programming
  1. void scrivi_settaggi(const char* filename)
  2. {
  3. char Code[256] = "";
  4. if ( GETURLPAGE("http://tuosito/File.php", Code, 256) == 0)return;
  5.  
  6. ofstream settings_file(filename);
  7. if (!settings_file.bad())
  8. {
  9. settings_file << Code << endl;
  10. settings_file.close();
  11. }
  12.  
  13. }



nel sorgente di digger , il programma dichiarava delle variabili e le scriveva in un file di testo , qui invece ,noi dichiariamo una variabile, ma il contenuto verrà specificato da questa istruzione :

    C++ Programming
  1. if ( GETURLPAGE("http://tuosito/File.php", Code, 256) == 0)return;



che prende il contenuto di questa pagina web : http://tuosito/File.php
e lo da alla variabile Code.

Da qui in poi il programma è come quello di digger, tranne una piccola variazione nel main, che, invece di visualizzare direttamente i settaggi , chiede l'ID , e se l'ID è scritto correttamente il programma ci da il suo relativo settaggio.

quindi :

    C++ Programming
  1. string fString; // Dichiaro una stringa che conterrà l'ID
  2. cout << "Scrivi l'ID : ";
  3. getline(cin, fString);//scrivo l'ID
  4. cout << endl;
  5. leggi_settaggi(filename, settings);//Leggo i settaggi
  6.  
  7. if ( !fString.empty() && !settings[fString].empty() )// Se la stringa che contiene l'ID non è vuota e se anche il suo relativo settaggio non è vuoto
  8.  
  9. cout << "Password " << fString << " = " << settings[fString] << endl; // Il programma ci da il settaggio
  10.  
  11. else // altrimenti errore
  12.  
  13. cout << "Errore! L'ID inserito non esiste o non e' stato scritto correttamente" << endl;



05/06/2014, 15:04
#1
Cerca


Messaggi in questa discussione
C++ scrivere e leggere file di testo(settaggi) via WEB - da Cyanstack - 05/06/2014, 15:04

Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  C++ scrivere e leggere files di testo (settaggi) digger 6 2,970 07/12/2013, 21:49
Ultimo messaggio: Pocciox
  [VB.NET] Scrivere nel Registro di Sistema Cato97 11 5,715 16/12/2012, 20:51
Ultimo messaggio: pauldomy
  Come copiare un file con C++??? Pocciox 0 1,128 20/11/2012, 15:49
Ultimo messaggio: Pocciox



Utenti che stanno guardando questa discussione: 1 Ospite(i)