tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
1373
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Mavericklp
    Mavericklp Mavericklp ist offline Mitglied Silber
    Registriert seit
    Oct 2006
    Ort
    nähe köln
    Beiträge
    96
    moin zusammen

    also ich möchte gerne mal einen eigenen ip scanner schreiben. benutze dev c++ und würde am liebsten komplett in c++ und nicht in c schreiben

    so den ip scanner habe ich fertig allerdings simulirt dieser nur das scannen (mit einem zufalls generator wird ausgegeben ob die ip vorhanden ist und wen ja wie lange er gebrauchst hat)

    jetzt würde ich gerne richtig scannen lassen und als zusatz einfügen, das das programm aus einer datei zeile für zeile die ip auslist ob dieses mit 4 variabln oder nur einer passirt ist mir relativ egal gebe nur zwischendurch die ip mit punkten aus also z.b. 192.168.0.10

    bisher habe ich dafür:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    ifstream fin("ip.txt");
    if(!fin)    //fals datei nciht gefunden
    { 
        system("CLS");
            cout<<"Datei nicht gefunden!!\n\n";
        cout<<"Die Datei **ip.txt** fehlt\n\n";
        cout<<"Die Datei muss beim Programm liegen\n\n";
        do{
            system("color 07");    // verursacht nur augen krebs (irgend einen sinn
            _sleep(400);             // müssen farben doch harben oder
            system("color 0c");
            _sleep(200);
            b++;
        }
        while(b!=10);*/
        system("pause"); 
        return 0;
    }
    ifstream finn("ip.txt");     //hier gehts weiter wen die datei vorhanden ist
    for (i=0;!finn.eof();i++)
    {finn.getline(ip,25); 
    break;}             
    finn.close();
    so nun würde ich das gerne so gestalten, das ich eine zeilen nummer übergebe und diese zeile wird ausgelesen und es wird dann zu der adresse geping

    allerdings ist dort noch irgend wo der wurm drin weil bekomme fehlermeldungen
    achso #include <fstream.h> steht am anfang damit das ganze überhaupt funktionirt (wen es richtig geschreiben ist)
     

  2. #2
    Avatar von jokey2
    jokey2 jokey2 ist offline Mitglied Smaragd
    Registriert seit
    Nov 2004
    Beiträge
    1.235
    1. In der Zeie 'while(b!=10);' hast Du ein Blockkommentarende, das da nicht hingehört.
    2.
    Code :
    1
    2
    3
    
     for (i=0;!finn.eof();i++)
    {finn.getline(ip,25); 
    break;}
    In dieser for-Schleife verwendest Du eine Zählervariable i (ich gehe mal davon aus, daß sie irgendwo oberhalb definiert ist). Diese Variable ist hier völlig sinnlos, da sie nirgendwo verwendet wird.
    Weiterhin prüfst Du eof am Schleifenbeginn. Das wird aber erst gesetzt, wenn ein Leseversuch schon eof detektiert hat und somit fehlgeschlagen ist.
    Außerdem verläßt Du die Schleife nach dem ersten Lesen mit break.
    Mit einem Wort: Die Schleife ist Murks
     

  3. #3
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Das Lesen einer bestimmten Zeilennummer würde ich lösen, wie im Beispielcode zu sehen ist, also die Datei zeilenweise einlesen und bei der gewünschten Position stehenbleiben. Den Stream solltest du nur einmal und nicht zweimal hintereinander öffnen.

    Gruß
    MCoder

    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    
    include <fstream> // ohne .h 
    include <string>
     
    int nLineNumber = ... ; // Gewünschte Zeilennummer
     
    ifstream fin("ip.txt");
     
    if( !fin.is_open() )
    {
        // ...   Datei nicht gefunden
    }    
    else
    {
        string strLine;
        int    nLineCounter = 0;
        
        while( getline(fin, strLine) )
        {
            if( nLineCounter == nLineNumber )
            {
                // ... Irgendwas mit der Zeile machen
                
                break;    
            }         
            
            nLineCounter++;   
        }
        
        file.close();
    }
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  4. #4
    Avatar von Mavericklp
    Mavericklp Mavericklp ist offline Mitglied Silber
    Registriert seit
    Oct 2006
    Ort
    nähe köln
    Beiträge
    96
    DANKE für die rasche hilfe

    (das mit dem nicht geöffneten komentar war nicht absichlich )

    werde es mal ausprobiren hört sich aufjeden fall viel versprechend an!! stell den gesamten quelltext mal online (wen das programm irgend wann mal fertig ist)

    die adresse liegt dann in der variable strLine? oder muss ich diese noch auslesen? wen ja wie?
    Geändert von Mavericklp (19.10.06 um 14:48 Uhr) Grund: hab was vergessen zu fragen
     
    Zitat Zitat von Johann Wolfgang von Goethe
    Es ist nicht genug zu wissen - man muss auch anwenden.
    Es ist nicht genug zu wollen - man muss auch tun.

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 03.10.07, 11:38
  2. Eine Zeile einer txt-Datei ersetzen
    Von KILLSMAKER im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 10.12.05, 20:20
  3. Antworten: 3
    Letzter Beitrag: 26.06.05, 00:34
  4. aus einer log datei von zeile x bis zum ende lesen
    Von Besti im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 1
    Letzter Beitrag: 11.04.05, 13:41
  5. Antworten: 3
    Letzter Beitrag: 26.11.03, 23:06