0
Answer

Balanced Line and Level Break

mark.kroes

mark.kroes

21y
3.2k
1
Hello, I'm from holland and am graduating at the moment. I have to accomplish an assignment voor my C++ final and have some problems with 2 aspects of C. Level Break and Balanced Line... at my currect workplace they do know something of C but not enough to help me to finisch my assignment. can you help me? Where can I find some theory about these subjects and does someone understand this following code? the text behind the code is in Dutch, so you can forget that..it's for my own understanding that I know what each rule is for.. thanks alot...my graduating for university depends on it.. thanks // Balanced_Line.cpp : Defines the entry point for the console application. // #include // File Controle Options // #include // ?? // #include // Standard Buffered input/output // #include // String Operations // #define REKNR_SIZE 9 // Definieert REKNR_SIZE met 9 velden/volumes // #define NAAM_SIZE 20 // Zo ook voor de volgende onderdelen // #define ADRES_SIZE 20 #define PLAATS_SIZE 20 #define BEDRAG_SIZE 4 #define SALDO_SIZE 6 typedef struct // ?? // { char rekeningnummer[REKNR_SIZE]; // Het object rekeningnummer krijgt de inhoud van REKNR_SIZE mee, lees 9 karakters // char naam[NAAM_SIZE]; // Dito voor de volgende onderdelen // char adres[ADRES_SIZE]; char plaats[PLAATS_SIZE]; char bedrag[BEDRAG_SIZE]; char saldo[SALDO_SIZE]; } info; // ?? // /* openen van de file */ int init(char *filename) // initialisatie van integer met argument char *filename // { int f = _open(filename, _O_RDWR | _O_BINARY | _O_SEQUENTIAL ); // openen van file met read & write rechten, rest onbekend // if( f == -1 ) // Als er geen file is wat geopend kan worden geeft app een foutmelding // { perror("Could not open file"); // Foutmelding die op scherm komt als -1 is // return -1; // Waarde die bij de foutmelding hoort, kan laten opgeroepen worden vanuit log // } else return f; // Anders komt f weer terug ?? snap niet // } /* Skip de rest van het record */ int gotoNextReknr(int i_input) // Gaat naar volgende veld in Reknr ( i_input is een argument, wat hoe en waarom? ) // { int v_aantal; // v_aantal komt van? // char v_buf[sizeof(info)-REKNR_SIZE + 2]; v_aantal = _read(i_input, v_buf, sizeof(info) - REKNR_SIZE + 2 /* */ ); // ?? // if (v_aantal != sizeof(info)- REKNR_SIZE + 2) return 0; else // Waarom 2x 0? // return 0; } /* Opzoeken van het volgende rekeningnummer in de file */ int findReknr(int i_input, const char *reknr) // Waarom staat er een * voor reknr // { bool v_found = false; int v_aantal; int record_size = sizeof(info); char v_buf[REKNR_SIZE+1]; // Zoeken van een record en dan 1 erbij? // while (v_found == false && !eof(i_input)) // ?? // { v_aantal = _read(i_input, &v_buf[0], REKNR_SIZE); if (strncmp(v_buf, reknr, REKNR_SIZE) == 0) // Vergelijking van strings // return 0; else { int v_retval = gotoNextReknr(i_input); // Wat is v_retval ? - return value ? // if (v_retval == -1) return v_retval; } } return -1; } /* Lees een record (mutatie file) */ int readRecord(int i_input, info *i_info) { int v_aantal; int record_size = sizeof(info); v_aantal = _read(i_input, i_info, sizeof(info)); if (v_aantal != record_size) // Als v_aantal is niet gelijk aan record_size dan return -1 // return -1; else { char buf[2]; v_aantal = _read(i_input, buf, 2 /* */); return 0; } } void update(int i_input, info i_info) // Volgende functie drukt de waarden af in de file? // { int v_aantal; v_aantal = _write(i_input, i_info.naam , NAAM_SIZE); v_aantal = _write(i_input, i_info.adres , ADRES_SIZE); v_aantal = _write(i_input, i_info.plaats, PLAATS_SIZE); v_aantal = _write(i_input, i_info.bedrag, BEDRAG_SIZE); v_aantal = _write(i_input, i_info.saldo , SALDO_SIZE); v_aantal = _write(i_input, "\r\n" , 2); // Staat voor? // } int main(int argc, char* argv[]) { int f; int m; if ( (f=init("d:\\temp\\input.txt")) != -1) // Als file niet gelijk is aan -1 dan ... // { if ( (m=init("d:\\temp\\mutatie.txt")) != -1) // Als file niet gelijk is aan -1 dan... /// { info v_info; // info is gelijk aan v_info // while (readRecord(m, &v_info) == 0) // als m en v_info gelijk zijn aan 0 dan ... // { if (findReknr(f, v_info.rekeningnummer) == 0) // wordt de volgende functie uitgevoerd // { update(f, v_info); // Geeft dus een update // } else gotoNextReknr(f); // Anders gaat die naar volgende reknr // } _close(m); // Dan wordt deze gesloten // } _close(f); // Dan wordt deze gesloten // } return 0; // Return waarde is 0 ?? waaorm // }