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