Video: Writing 2D Games in C using SDL by Thomas Lively 2024
Ah, een bestand kopiëren - zoiets eenvoudigs, het gebeurt altijd. Kopieer dit bestand daar; kopieer dat bestand hier. Maar wat gebeurt er precies als u een bestand kopieert? U maakt eigenlijk een nieuw -bestand en vult het met dezelfde inhoud als het oorspronkelijke bestand. En hoe doe je dat?
Nou, het klinkt alsof je elke byte uit het eerste bestand moet lezen en deze naar de tweede moet schrijven. Big-time barman.
Maar om het nog erger te maken, kopieert een bestand dat je ervoor moet zorgen dat je het exact hetzelfde kopieert, dat je niet per ongeluk een extra 0 of twee aan het einde van het bestand tackelt, of een extra carriage return of linefeed aan het einde van het bestand (dit kan gebeuren wanneer u een tekstbestand kopieert).
Wanneer alles klaar is, moeten de twee bestanden identiek zijn - niet alleen de dezelfde informatie bevatten, maar ook de dezelfde grootte .
En bovendien doen de meeste goede kopieerroutines nog meer! Ze geven het nieuwe bestand een datum die overeenkomt met de datum van het originele bestand, en ze zullen alle attributen instellen - inclusief, laten we zeggen, alleen-lezen als het origineel een alleen-lezen bestand is. (Als het bestand alleen-lezen is, moet u het misschien niet eerst kopiëren …)
Het kopiëren van een bestand klinkt toch niet zo gemakkelijk!
Als u in Windows programmeert, hebt u geluk! Zolang u de oude Windows 3. 1 niet gebruikt, krijgt u een CopyFile-functie! Als u zich gereed wilt maken om het te gebruiken, neemt u de regel # opnemen in uw toepassing op. Dan is hier alles wat u hoeft te doen:
CopyFile ("c: / dog. Txt", "c: / dog2. Txt", TRUE);
Dit kopieert van c: / dog. txt naar c: / dog2. tekst. Maar let op de laatste parameter: het is het woord WAAR in alle hoofdletters. Wat is dat? Dat is een macro van de preprocessor die ergens in de ingewanden van de Windows-headerbestanden wordt gedefinieerd.
U moet WAAR of ONWAAR gebruiken wanneer u een van de Windows-functies aanroept. Dat komt omdat in de oude dagen van C, toen de vroege versies van Windows werden uitgevonden, er geen Bool-type bestond. Die vindingrijke mensen van de late 20e eeuw moesten hun eigen WAAR en ONWAAR definiëren als gehele getallen (meestal respectievelijk 1 en 0, of 0 en 1).
En trouwens, die laatste parameter in CopyFile vertelt de functie wat te doen als het bestand waar je naartoe kopieert al bestaat: TRUE betekent dat het bestaande bestand niet wordt overschreven; gewoon afbreken. FALSE betekent overschrijven.