/* rrgfx-rangliste.c */ #include #include #include #include #include #define BUF 256 #define LIST "rangliste.txt" #define RANG "bbcode-liste.txt" #define PROFILELINK "http:\/\/board.raidrush.to/member.php?u=" typedef unsigned int uint; // unsigned int als uint deklarieren struct rangliste { char user[BUF]; uint userid; uint punkte; }; /* Funktionen deklarieren */ void sort(struct rangliste *, int); void shellsort(int *, int); int main(void) { struct rangliste rang[BUF]; FILE *liste, *rangl; int iMode, iCnt, iMenu; //char cTmp[BUF]=""; iMode = iMenu = 0; iCnt = 1; /* Ueberpruefen ob die 2 Dateien vorhanden sind, * * denn wenn nicht werden sie geschrieben */ if((rangl=fopen(LIST,"a")) == NULL) { printf("[~] Erstelle Datei: %s\n",LIST); } if((liste=fopen(RANG,"a")) == NULL) { printf("[~] Erstelle Datei: %s\n",RANG); } /* Nun da die Dateien existieren * * koennen wir mit ihnen arbeiten */ while(1) { printf("\n1.) Neue Liste erstellen\n2.) Alte Liste bearbeiten\n0.) Beenden\n"); scanf("%1d",&iMenu); if(iMenu == 1) { printf("-------------------------------------------\n"); iMode=iMenu; // printf("User: "); // fgets(cTmp,BUF,stdin); // strncpy(rang[iCnt].user,cTmp,(sizeof(cTmp)/sizeof(char))); printf("UserID: "); scanf("%d",&rang[iCnt].userid); printf("Punkte: "); scanf("%d",&rang[iCnt].punkte); printf("-------------------------------------------\n"); printf("[+] User erfolgreich zur Datenbank hinzugefuegt ..\n"); iCnt++; } if(iMenu == 2) { iMode=iMenu; printf("to be continued ..\n"); } if(iMenu == 0) { break; } } if(iMode == 1) { sort(rang, iCnt); } fclose(rangl); fclose(liste); return 0; } /* Funktion ueberprueft ob Dateien vorhanden sind */ void shellsort(int *array, int elemente) { int i, j, temp, n; for(n=1;n<=elemente/9;n=3*n+1); for(;n>0;n/=3) { for(i=n;i<=elemente;i++) { temp = array[i]; for(j=i;j>=n && array[j-n] > temp;j-=n) { array[j]=array[j-n]; } array[j]=temp; } } } void sort(struct rangliste *rang, int max) { int i,j; float zeit; clock_t start, ende; int buffer[BUF]; for(i=0;i