Avatar billede homsabu Nybegynder
05. oktober 2004 - 14:19 Der er 19 kommentarer og
2 løsninger

Finde ud af om en fil eksistrere

hvordan tjekke man om en fil allerede eksisterer??
Avatar billede jakobdo Ekspert
05. oktober 2004 - 14:21 #1
Hvis du bruger Borland Builder, så brug FileExists(FileName);
Avatar billede homsabu Nybegynder
05. oktober 2004 - 14:21 #2
altså det handler om at jeg har et program som skal bruge en database.dat... og hvis den fil ikke eksistere allerede skal den oprettes...
Avatar billede homsabu Nybegynder
05. oktober 2004 - 14:22 #3
det er borland c++ 5.02
Avatar billede homsabu Nybegynder
05. oktober 2004 - 14:23 #4
hvad returnere FileExists(FileName)??? eller rettere hvordan skal jeg bruge det??

er det noget i retning af;
if(FileExists(filename) == 0)
{
OPRET FIL
}
Avatar billede arne_v Ekspert
05. oktober 2004 - 14:24 #5
Det kan gøres på mange måder.

Her er en som vil virke på så godt som alle C og C++ compilere:

#include <sys/stat.h>

#include <iostream>

using namespace std;

bool exist(char *filename)
{
  struct stat sb;
  return (stat(filename,&sb) == 0);
}

int main()
{
  cout << exist("stat.cpp") << endl;
  cout << exist("nostat.cpp") << endl;
  return 0;
}
Avatar billede homsabu Nybegynder
05. oktober 2004 - 14:27 #6
arne_v : det skal bare være så simpelt som muligt... for jeg er rimelig ny i det! :-)
Avatar billede jakobdo Ekspert
05. oktober 2004 - 14:44 #7
FileExists returnere TRUE hvis filen findes...

Så du kan bruge:

if (FileExists("database.dat") == true)
//Vores database.dat fil findes, gå videre...
else
//Filen findes ikke, lad os oprette...

Linie et kan også blot være: if (FileExists("database.dat"))
Avatar billede homsabu Nybegynder
05. oktober 2004 - 14:47 #8
når jeg compiler får jeg denne fejl;

"Call to undefined function 'FileExists'"....

skal der includes noget specielt??
Avatar billede arne_v Ekspert
05. oktober 2004 - 14:50 #9
if (FileExists("database.dat") == true)

kan forkortes til

if (FileExists("database.dat"))
Avatar billede jakobdo Ekspert
05. oktober 2004 - 14:51 #10
(det skrev jeg jo til sidst arne)
Avatar billede jakobdo Ekspert
05. oktober 2004 - 14:52 #11
Du kunne også lave:

if (!(FileExist("database.dat")))
//Opret filen...
Og så laver vi ellers hvad vi vil...
Avatar billede homsabu Nybegynder
05. oktober 2004 - 14:53 #12
jaja... har forstået lige det!

men når jeg compiler får jeg denne fejl;

"Call to undefined function 'FileExists'"....

skal der includes noget specielt??
Avatar billede jakobdo Ekspert
05. oktober 2004 - 14:53 #13
Du skal huske at include:

#include <dir.h>
Avatar billede arne_v Ekspert
05. oktober 2004 - 14:54 #14
jakob>

sorry jeg sidder og sover - jeg læste ikke dit indlæg til ende
Avatar billede homsabu Nybegynder
05. oktober 2004 - 14:54 #15
har include <dir.h> nu... men stadig samme fejl : "Call to undefined function 'FileExists'"....
Avatar billede jakobdo Ekspert
05. oktober 2004 - 14:55 #16
Ok, måske vi har snakket lidt forbi hinanden!

Bruger du FreeCompiler Borland?
Avatar billede jakobdo Ekspert
05. oktober 2004 - 15:00 #17
Hvis du ikke har funktionen FileExists, så er det nok lettest at bruge Arne_v løsning:

#include <sys/stat.h>

bool FileExist(const char* FileName)
{
  struct stat my_stat;
  return (stat(FileName, &my_stat) == 0);
}

Så kan du tjekke med:

if (FileExist("database.dat))
//OK
else
//IKKE OK
Avatar billede homsabu Nybegynder
07. oktober 2004 - 10:11 #18
Har fået det til at virke!! :-)

tak for hjælpen!

jakobdo & arne_v : smid et svar hvis i vil ha' point! ellers napper jeg dem selv! :-)
Avatar billede jakobdo Ekspert
07. oktober 2004 - 10:12 #19
Svar...
Avatar billede arne_v Ekspert
07. oktober 2004 - 10:13 #20
ditto
Avatar billede jakobdo Ekspert
07. oktober 2004 - 14:00 #21
Taxi... :o)
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