cb cb cb cb cb cb Willkommen auf dem coding-board cb

Zurück   coding-board > Programmiersprachen > C/C++
Chat coding-wiki Kontakt Alle Foren als gelesen markieren Impressum Nutzungsbedingungen
Registrieren Hilfe Benutzerliste Kalender Suchen Heutige Beiträge Alle Foren als gelesen markieren


Antwort
 
Themen-Optionen Thema bewerten Ansicht
Alt 18.04.2006, 17:25   #1
tatoeff
Neuling
 
Registriert seit: 16.04.2006
Beiträge: 5

Array -> Zeichen extrahieren

Hallöle,

sorry falls die Frage dumm klingt, aber ich bin Anfänger.

Ich möchte mit einem kleinen Programm gern herausfinden, welche IP ich habe. Dazu mache ich folgendes: Ich starte per ShellExecute ein WinProgramm namens ipconfig.exe, welches seine Ausgabe in eine Datei umleitet (out.txt).
Diese Datei öffne ich mit f.open und lese 6 Zeilen ein (da steht die IP-Adresse).
Nun habe ich in einem char-array folgendes stehen: "IP-Adresse. . . . . . . . . : 127.0.0.1"
Meine Frage ist nun, wie ich an die "127.0.0.1" komme, welche ich gern als String weiterverwenden würde. Ich hänge mal den Code an, damit es verständlicher ist.
Code: (Breitenbeschränkung entfernen)
#include <cstdlib>
#include <iostream>
#include <windows.h>
#include <fstream>

using namespace std;
char cstring[256];
char a;
int ip_get (void);

int main(int argc, char *argv[])
{
    ip_get();
    cout<<"Da isse!"<<cstring<<endl;
    a = cstring[1];
    cout<<a<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}

int ip_get ()
{
    //ipconfig aufrufen ->ergebnis in out.txt schreiben
    ShellExecute (NULL, "open", "ipconfig.exe" , "/batch out.txt",
    NULL, SW_HIDE);
    //out.txt öffnen, zeilenweise einlesen, IP-Adresse holen
    fstream f;
    
    int i = 0;
    f.open("out.txt", ios::in);
    while (i < 6)
    {
        f.getline(cstring, sizeof(cstring));
        i++;
        }
    f.close();
    
    return 0;
}
Jetzt könnte ich, wie in main auch gemacht, ein Zeichen aus der x-ten Stelle des Array extrahieren. Nun weiß ich aber nicht, wie die IP tatsächlich aussieht. (Bsp.: 127.0.0.1 oder auch 80.95.122.45 usw.)

Kann mir bitte jemand einen Tipp geben, wie ich das weiterverarbeiten kann?
tatoeff ist offline   Mit Zitat antworten
Sponsored Links
Alt 18.04.2006, 21:10   #2
MartinF
Hobby Coder
 
Registriert seit: 29.08.2005
Beiträge: 81

Folgendermaßen könntest du die IP-Addresse als String extrahieren.

Code: (Breitenbeschränkung entfernen)
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

string get_ip()
{
  // Aufruf ipconfig; Ausgaben in out.txt

  // Ausgabe von ipconfig einlesen
  ifstream is("out.txt", ios_base::in);
  string tmp;
  getline(is, tmp);

  // Leerzeichen aus String entfernen und IP-Addresse zurückgeben
  tmp.erase(remove(tmp.begin(), tmp.end(), ' '), tmp.end());
  return tmp.substr(tmp.find_first_of(':')+1);
}


int main()
{
  cout << get_ip() << endl;
}

Du musst noch den Aufruf des Programms einfügen. Wenn die Ausgabe von ipconfig.exe 'IP-Addresse martin@linux: 127.0.0.12' lauten würde, wäre die Ausgabe des Programms '127.0.0.12'.

Hoffe konnte weiterhelfen.
MartinF ist offline   Mit Zitat antworten
Alt 18.04.2006, 21:30   #3
tatoeff
Neuling
 
Registriert seit: 16.04.2006
Beiträge: 5

Zitat:
Zitat von MartinF
Folgendermaßen könntest du die IP-Addresse als String extrahieren.


Du musst noch den Aufruf des Programms einfügen. Wenn die Ausgabe von ipconfig.exe 'IP-Addresse martin@linux: 127.0.0.12' lauten würde, wäre die Ausgabe des Programms '127.0.0.12'.

Hoffe konnte weiterhelfen.
Ah, vielen Dank!
Das ist natürlich um Längen eleganter.

Ich habe für den ursprünglichen Code auch eine Lösung.
(ipstring wäre dann 127.0.0.1)

Code: (Breitenbeschränkung entfernen)
strcpy (ipstring,cstring+30);
Viele Grüße
tatoeff
tatoeff ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Ansicht Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge anzufügen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Zeichen ausgeben mit Zeichen- und Hintergrundfarbe ? Quicks Assembler (ASM) 15 24.05.2006 18:29
Extrahieren petro Visual Basic, Visual Basic for Applications (VBA) und VBS 9 19.04.2006 16:17
Quellcode extrahieren Blacknator C/C++ 2 22.02.2005 16:36
Hilfe bei *.res Files extrahieren!!! synthesis C/C++ 11 22.10.2004 12:45
String extrahieren Holger1976 C/C++ 12 16.04.2004 17:48


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:51 Uhr.


Powered by vBulletin®
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Design & Inhalt Copyright © 2001-2010, coding-board-Team