Wiederhole solange Elemente da sind



  • Hallo,

    Ich habe folgendes struct:

    struct DriveInfo{
    	int type;
    	char Drive;
    }drive[];
    

    Dieses kann ich füllen, z.B.:

    int a = 1;
    for(int i=0; i<=10; i++){
        drive[i].type = a;
        a++;
    }
    

    Aber eine Frage stellt sich mir:

    Wenn ich nicht weiß, wie viele Elemente drive[] hat, wie lese ich es dann wieder aus?

    Ich brauche ja dann etwa so etwas:

    int i = 0;
    (Wiederhole solange Elemente in drive[] sind){
        lies drive[i].type...
        i++;
    }
    

    Ist das richtig?
    Und wie mache ich das "Solange Elemente in drive[] sind"? 😕

    mfg
    trequ



  • Hallo,

    ich glaube nicht das es direkt sowas gibt aber wen du das feld fülst (i<=10) wiest du doch das 11 felder gefült sind oder??

    MFG TaccoGo



  • Hallo,

    TaccoGo schrieb:

    ich glaube nicht das es direkt sowas gibt aber wen du das feld fülst (i<=10) wiest du doch das 11 felder gefült sind oder??

    Beispiel:

    DWORD           dwDrives = GetLogicalDrives();   
        char            Drive[8] = "A:\\"; 
        int cnt = 0;
        for(int i=0; i<26; i++) { 
            if(dwDrives) {
                Drive[0] = i + 'A'; 
                if(GetDriveType(Drive) == DRIVE_REMOVABLE) { 
    				drive[cnt].type = 2;
                    cnt++;
                }
            }
        }
    

    Wenn ich jetzt das ganze aufrufe, weiß ich ja nicht, wieviele Wechseldatenträger es gibt.

    Außerdem: Warum soll es sowas nicht geben?
    In PHP und Perl/TK gibt es sowas ja auch... (ist ja auch gar nicht so unwichtig..., denke ich)

    mfg
    trequ



  • Hallo,

    naja sowas gibt es schon aber ich kenn das nicht algemein für eine eigene struktur. ich kenne das nur bei datentypen wo es neie metode dazu gibt.

    aber wen ich den code ferstanden habe steht doch in cnt die anzahl??

    MFG TaccoGo


Anmelden zum Antworten