Bertel Lund Hansen wrote:
> Hej alle
>
> Hvorfor virker det her ikke når jeg kompilerer det med en anden
> compiler? Compileren melder 0 fejl.
>
> #include <stdio.h>
> #include <stdlib.h>
> #include <string.h>
> #include <conio.h>
> #include <dir.h>
>
>
> const char path[] = "D:/Hjemside/Signe/Sydafrika/";
> ...
> struct ffblk *fblockp;
> ...
>
> int main () {
> char kode;
> int picnr=0, stmpnr=0, nr, pos;
> char searchname[LINELENGTH], filename[LINELENGTH];
> clrscr ();
> fblockp=malloc (sizeof(struct ffblk));
>
> sprintf(searchname,"%s*.jpg",path);
> kode=findfirst (searchname,fblockp,0x3F);
> while (!kode) {
> sprintf(filename,"%s",fblockp->ff_name);
> printf("%d %s\n",kode,filename);
> if (fblockp->ff_fsize>STAMPLIMIT) {
> picture[picnr]=malloc(sizeof(filename)+1);
> sprintf(picture[picnr],"%s",filename);
> ...
>
> Der ligger 6 JPG-filer i mappen, og kode bliver også sat til 0
> (fil fundet), men ff_name returnerer navnet "DATA", og billederne
> hedder noget med "01_..." og stigende nummer.
>
>
Du skal sætte den sidste parameter i kaldet til findfirst til 0,
ellers får du ikke almindelige filer, men disk label, directorier,
etc.
Er din disk label "DATA" ?
findfirst() returnerer en int i Borland.
Linien "picture[picnr]=malloc(sizeof(filename)+1);"
kunne skrives som picture[picnr]=malloc(strlen(filename)+1);
/bertel (nej, den anden Bertel
)