Toon posts:

[C++ Builder] bestanden kopieren

Pagina: 1
Acties:

Verwijderd

Topicstarter
Het volgende is de bedoeling. ik heb een directory waar een *.log file staat.
deze file wil ik automatisch laten kopieren naar een andere directory.
deze directory is in een settings scherm op te halen!

dus bijvoorbeeld
C:\project\log\log1.log Moet naar C:\project\replay\

het maakt niet uit welke naam de nieuwe file krijgt mag dezelfde naam krijgen.
Dus wanneer mijn methode copieerfile uitgevoerd wordt is het de bedoeling de file rechtstreeks te kopieren.

het volgende heb ik al maar dat duurd te lang.
Ik schrijf nu alle lijnen naar een TMemo, haal ze er vervolgens weer uit en schrijf dit naar een nieuwe file.

Maar dit moet toch anders kunnen? Want dit duurd erg lang en is niet bepaald mooi!

Welke methode(s) kan ik hiervoor gebruiken?
Of heeft iemand andere ideeen?

Alvast bedankt!!

greetz flykiller

  • Delpix
  • Registratie: September 2001
  • Laatst online: 27-11-2021

Delpix

Alanis Fan

in plaats van een memo kan je beter een TStringlist gebruiken als de text toch niet op het scherm getoont hoeft te worden. Maar dit is ook geen nette oplossing.

Messchien is de Copyfile api functie wel handig.

code:
1
2
3
4
5
6
7
8
The CopyFile function copies an existing file to a new file. 

BOOL CopyFile(

    LPCTSTR lpExistingFileName, // pointer to name of an existing file 
    LPCTSTR lpNewFileName,  // pointer to filename to copy to 
    BOOL bFailIfExists  // flag for operation if file exists 
   );

...beter bekend als AMFan


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

En als je niet van de winapi gebruik wilt maken kan je gebruik maken van een TFileStream om te kopieeren.

We adore chaos because we like to restore order - M.C. Escher


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 21-08 17:14
En in standaard C++ is het

code:
1
2
3
std::ifstream in ( input_filename );
std::ofstream out ( output_filename );
out << in.rdbuf();

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Verwijderd

regel voor regel gaat altijd trager dan een 'blockcopy'

oftewel ipv 1 regel lezen tijdens het copien . . lees meteen een block van bv : 64k in . .en schrijf daarna het hele block weer in 1x weg. . .. .