16. oktober 2002 - 16:09Der er
15 kommentarer og 1 løsning
Fjerne første linie fra fil hvis den er blank (+ backup)
Jeg skal bruge en lille util (skal kunne compiles til winbaserede systemer) hvor man kalder:
[cstumpnavn] [filnavn]
hvorefter [filnavn] åbnes og hvis første linie er blank skal resultatet være at linien fjernes, men først efter at [filnavn].old er oprettet i den oprindelige version under samme sti som [filnavn].
Det må da være en let lille opgave for de rutinerede herinde hva?
Det kan forbedres på mange måder: - checke på om argumentet er angive og give en fejl-besked hvis ikke - check at temp.dat ikke eksisterer i forven eller generere et med garanti unikt navn - slette backup filen hvis den allerede eksisterer - navngive backuppen udfra den originale fil
Det sidste var faktisk i dit krav ! Skal jeg lige tilføje det ?
Filerne genereres med løbenummer så sandsynligheden for at de findes i forvejen er temmelig liile. Men som du selv nævner skal .old gerne relatere til filnavnet. Det ser godt ud. Prøver lige....
Prøvede den simple udgave (uden mktemp) og den virker fint. Hvis du lige kan se hvorfor den udvidede ikke virker ville det være fint, men jeg takker meget for den simple
Det lyder som din C/C++ compiler (MSVC++ formoder jeg) ikke kan lide mktemp.
Jeg bruger MinGW (Minimalist Gnu for Windows).
Hvis du ikke er bekymret for flere der køre util'en i samme directory samtidigt og lignende kan du bare fjerne kaldet af mktemp (og måske rette tempfnm værdien til).
arne_v >> Der er faktisk en funktion der hedder CopyFile...
BOOL CopyFile( LPCTSTR lpExistingFileName, // name of an existing file LPCTSTR lpNewFileName, // name of new file BOOL bFailIfExists // operation if file exists );
BTW: Jeg lavede din if(argc < 1) {..printf..} om til if(argc > 1) {..det spændende hér..} else {..printf..} for den blev ved med at ignorere printf'en. Da jeg omskrev fungerede det fint.
Synes godt om
Ny brugerNybegynder
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.