Avatar billede lasse_hyldal Nybegynder
24. oktober 2002 - 11:42 Der er 11 kommentarer og
1 løsning

Kopiering af en fil.

Findes der en funktion eller en anden smart måde til at kopiere indholdet fra en fil over i en anden. Er man nødt til at indlæse alle data ind i programmet for derefter at indlæse dem i den nye fil?
Avatar billede arne_v Ekspert
24. oktober 2002 - 11:48 #1
Du kan gøre 2 ting:

1)  Lade dit program åbne filen og en ny fil og kopiere
    alt indhold fra den gamle til den ny fil (en while løkke
    med passende læse og skrive funktioner).

2)  Bruge system kald til at bruge operativ-systemets
    copy kommando (DOS: copy, Unix: cp etc.) til at
    kopiere filen med.
Avatar billede jpk Nybegynder
24. oktober 2002 - 11:49 #2
CopyFile

BOOL CopyFile(
  LPCTSTR lpExistingFileName, // name of an existing file
  LPCTSTR lpNewFileName,      // name of new file
  BOOL bFailIfExists          // operation if file exists
);
Avatar billede lasse_hyldal Nybegynder
24. oktober 2002 - 14:56 #3
jpk. Kan du ikke lige skrive programmet med nogle konkrete filer?
Avatar billede jpk Nybegynder
24. oktober 2002 - 15:01 #4
CopyFile("C:\\DenneFilSkalKopieres.txt", "C:\\DenneFilOprettes.txt", TRUE);

Hvis du angiver FALSE i stedet for TRUE, overskrives filen, hvis den findes i forvejen
Avatar billede arne_v Ekspert
24. oktober 2002 - 15:02 #5
Det er ikke et program men et erklæring.

Det er formentlig en Windows specifik rutine,
som er erklæret i windows.h og hvis jeg kan huske
alle de MS typedef's korrekt, så kan du bare kalde den
med:

CopyFile("glnavn.fil","nytnavn.fil",0);

Men det forudsætter altså, at du er på Windows.
Avatar billede lasse_hyldal Nybegynder
24. oktober 2002 - 15:08 #6
Jeg programmerer i C, så her findes TRUE og FALSE-værdier jo ikke. Hvad skal man i øvrigt inkludere for at kalde CopyFile?
Avatar billede lasse_hyldal Nybegynder
24. oktober 2002 - 15:09 #7
Jeg er Linux
Avatar billede jpk Nybegynder
24. oktober 2002 - 15:17 #8
Hmm, hvordan skulle man kunne gætte det...

Typisk når folk opretter et spørgsmål og undlader at fortælle om det er C eller C++ og hvilket operativsystem de arbejder på, er det C++ til Windows...

Men generelt bør man jo give de nødvendige oplysninger for at undgå misforståelser og ligeledes bruge tid på noget helt forkert!

Helt analogt:
Q: Kan du løse mit regnestykke?
A: Øhhhh...

Q: Kan du løse mit regnestykke, det drejer sig om multiplikation af tallene 2 og 3?
A: Ja, svaret er 6...
Avatar billede arne_v Ekspert
24. oktober 2002 - 15:29 #9
På Linux så tror jeg at du er tilbage ved mine 2 forslag.
Avatar billede lasse_hyldal Nybegynder
24. oktober 2002 - 15:40 #10
Hvordan laver jeg et systemkald til cp-kommandoen? Gerne et eksempel.
Avatar billede arne_v Ekspert
24. oktober 2002 - 16:09 #11
#include <stdlib.h>

system("cp glnavn.fil nynavn.fil");

det kan ikke være meget simplere - du giber bare
kommandoen, som du selv ville skrive den.

Bemærk:
  - kommandoen er naturligvis også OS specifik
  - system kaldet er ikke optimalt for performance
Avatar billede lasse_hyldal Nybegynder
24. oktober 2002 - 17:04 #12
takker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester