/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Filnavne... :-/
Fra : SK


Dato : 11-02-03 10:10

Hej gruppe,
Kan man ikke lave en funktion, så man bare skriver filnavnet, og ikke
fil-extension'en, når man skal åbne en fil?
sådan, så programmet selv tilføjer ".extension" ?



 
 
Bertel Brander (12-02-2003)
Kommentar
Fra : Bertel Brander


Dato : 12-02-03 08:59

SK skrev:
> Hej gruppe,
> Kan man ikke lave en funktion, så man bare skriver filnavnet, og ikke
> fil-extension'en, når man skal åbne en fil?
> sådan, så programmet selv tilføjer ".extension" ?
>

Jeg er ikke sikker på at jeg forstår spørgsmålet, så det følgende er
rene gætterier (warning utestet kode følger):

1: Tilføj ".extension" til det filnavn brugeren angiver:

char temp[128 + 10], *s;
printf("Enter filename: ");
fflush(stdout);
fgets(temp, 128, stdin);
if((s = strchr(temp, '\n')) != NULL)
*s = '\0';
strcat("temp, ".extension");
FILE *f = fopen(temp, "rb");

2: En lidt mere inteligent løsning hvor programmet selv finder en
matchende extension, denne løsning benytter et par
ikke standard funktioner, så du skal måske ændre det til den
platform du benytter:

char temp[_MAX_PATH + 2], *s;
struct _finddata_t fileinfo;
long handle;
int done = 0;

printf("Enter filename: ");
fflush(stdout);
fgets(temp, _MAX_PATH, stdin);
if((s = strchr(temp, '\n')) != NULL)
*s = '\0';
strcat(temp, ".*");

handle = _findfirst(temp, &fileinfo);
if(handle != -1)
{
do
{
if(!(fileinfo.attrib & _A_SUBDIR))
{
strcpy(temp, fileinfo.name);
done = 1;
}
}
while(!done && _findnext(handle, &fileinfo) == 0);
_findclose(handle);
}
if(done)
FILE *f = fopen(temp, "rb");

Hvis det ikke var dette du er ude efter så kom med en mere præsis
beskrivelse af problemet.

/b

--
Bertel Brander, author of Wain, a free text editor for programmers:
http://home20.inet.tele.dk/midgaard/program.htm


Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408518
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste