aGetfiles bug
Re: aGetfiles bug
Ok, to test it, i require the function fw_wcslen()! Can somebody send me or show the place in source?
- Giovany Vecchi
- Posts: 223
- Joined: Mon Jun 05, 2006 9:39 pm
- Location: Brasil
Re: aGetfiles bug
The problem is not in bytes, but in query length.
Example: If you select 60 files that are in the c: \ temp folder, it would look like this:
"c: \ temp \ archi01.txt" "c: \ temp \ archi02.txt" etc etc.
Each file would take 21 len characters ("'c: \ temp \ archi01.txt'") = 21
If the folder is of greater length Ex: c: \ My documents secrets, it would look like this:
"c: \ My documents secrets \ archi01.txt"
len ('"c: \ My documents secrets \ archi01.txt"') = 37
So if you put a higher value in:
pFile = fw_parWideLen (8, 65534); // 65534 would be the limit of 16 bits, I did not test greater than this value.
The return of the characters composition arranged in windows api will be treated with more space.
I did not go deep to study certainly what causes the error. I know I solved it this way.
Example: If you select 60 files that are in the c: \ temp folder, it would look like this:
"c: \ temp \ archi01.txt" "c: \ temp \ archi02.txt" etc etc.
Each file would take 21 len characters ("'c: \ temp \ archi01.txt'") = 21
If the folder is of greater length Ex: c: \ My documents secrets, it would look like this:
"c: \ My documents secrets \ archi01.txt"
len ('"c: \ My documents secrets \ archi01.txt"') = 37
So if you put a higher value in:
pFile = fw_parWideLen (8, 65534); // 65534 would be the limit of 16 bits, I did not test greater than this value.
The return of the characters composition arranged in windows api will be treated with more space.
I did not go deep to study certainly what causes the error. I know I solved it this way.
- Antonio Linares
- Site Admin
- Posts: 42519
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 75 times
- Contact:
Re: aGetfiles bug
Günther,
Code: Select all | Expand
size_t fw_wcslen( const wchar_t * s )
{
const wchar_t *p;
p = s;
while (*p)
p++;
return p - s;
}
Re: aGetfiles bug
Antonio, now a have increased #define SIZE_IN_BYTES 153840
But that is not all. In HB_FUNC( CGETFILE ) i made this changes:
But that is not all. In HB_FUNC( CGETFILE ) i made this changes:
Code: Select all | Expand
…...
pDir = fw_parWideLen( 4, 512 );
wLen = ( ( dwFlags & OFN_ALLOWMULTISELECT ) ? SIZE_IN_BYTES : 512 ); //reactivate
pFile = fw_parWideLen( 8, wLen ); //change
pFilter = fw_parWideLen( 1, 800 );
pText = ( LPSTR ) pFilter;
for ( w = 0; w < 800; w++ )
…...
ofn.nMaxFile = wLen; //change
…...
- Antonio Linares
- Site Admin
- Posts: 42519
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 75 times
- Contact:
- Antonio Linares
- Site Admin
- Posts: 42519
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 75 times
- Contact:
- Antonio Linares
- Site Admin
- Posts: 42519
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 75 times
- Contact:
Re: aGetfiles bug
Günther,
No, it is not included yet. I am checking why it has not been included yet.
Please email it to me again, thanks
No, it is not included yet. I am checking why it has not been included yet.
Please email it to me again, thanks
- Antonio Linares
- Site Admin
- Posts: 42519
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 75 times
- Contact: