Daten aus *.xyz lesen und in array speichern



  • Moin moin!
    Also ich hab folgendes vor:
    eine liste von IP in eine beliebige datei schreiben.
    hier ein bespiel:

    127.0.0.1:111
    192.168.1.1:111
    192.168.1.2:111
    192.168.1.3:111
    192.168.1.4:111
    192.168.1.5:111
    ..
    

    und will diese daten nun zeile für zeile einlesen und
    und in diesem array speichern:

    SOCKADDR_IN servList[30];
        servList[x].sin_family=AF_INET;
        servList[x].sin_port=htons(thisPort);
        servList[x].sin_addr.s_addr=inet_addr(thisIp);
    

    einer ne idee? 😕



  • habe ich erst vor ein paar tagen schon mal so was ähnliches geschrieben 🙂

    HANDLE  hFile;
        DWORD   dwFileSize;
        DWORD   dwBytesRead;
        char    *lpBufPtr;
        char    szTemp1[MAX_PATH];
        char    szTemp2[MAX_PATH];
    
        if((hFile = CreateFile(
                "*.xyz",
                GENERIC_READ,
                FILE_SHARE_READ,
                NULL,
                OPEN_EXISTING,
                FILE_ATTRIBUTE_NORMAL,
                (HANDLE)NULL)) == (HANDLE)-1)
            return FALSE;
    
        dwFileSize = GetFileSize(hFile, NULL);
        if(dwFileSize == 0xFFFFFFFF)
            return FALSE;
    
        lpBufPtr = (char *)LocalAlloc(GMEM_FIXED, dwFileSize);
    
        if(lpBufPtr == NULL)
        {
            CloseHandle(hFile);
            return FALSE;
        }
    
        ReadFile(hFile,(LPVOID)lpBufPtr, dwFileSize, &dwBytesRead, NULL);
    
        if(dwBytesRead == 0)
            return FALSE;
    
        CloseHandle(hFile);
    
        for(int i = 0; i < dwFileSize; i++)
        {
            if(*lpBufPtr == 0x0a) 
            {
                    lpBufPtr++;
                    sscanf(
                        lpBufPtr, 
                        "%[^':'],%s", 
                        szTemp1,
                        szTemp2);
    
                     servList[x].sin_addr.s_addr=inet_addr(szTemp1); // musst du probieren ob es geht
                    servList[x].sin_port=htons(atoi(szTemp2));
            }
            lpBufPtr++;
        }
    
        LocalFree(lpBufPtr);
    

    [ Dieser Beitrag wurde am 26.03.2003 um 12:58 Uhr von miller_m editiert. ]



  • jo danke!
    werds gleich mal testen!



  • funktioniert ganz gut bisauf das wenn ich mit die Adresse mit

    inet_ntoa(servList[x].sin_addr);
    

    aus geben lass (via OutputDebugString) bekomm ich als ergebnis nur "0.0.0.0"
    ich hab szTemp1 testweise mal durch "127.0.0.1" ersetzt dann gehts!
    einer ne idee?


Anmelden zum Antworten