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: 129
- 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: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: aGetfiles bug
Günther,
Code: Select all
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
…...
pDir = fw_parWideLen( 4, 512 );
wLen = ( ( dwFlags & OFN_ALLOWMULTISELECT ) ? SIZE_IN_BYTES : 512 ); //[b]reactivate[/b]
pFile = fw_parWideLen( 8, wLen ); //[b]change[/b]
pFilter = fw_parWideLen( 1, 800 );
pText = ( LPSTR ) pFilter;
for ( w = 0; w < 800; w++ )
…...
ofn.nMaxFile = wLen; //[b]change[/b]
…...
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: aGetfiles bug
Günther,
Is it working fine now ?
Many thanks for your great feedback
Is it working fine now ?
Many thanks for your great feedback
Re: aGetfiles bug
I now can get many files ( 300 i have tested)!
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: aGetfiles bug
Please email me your modified file, thanks!
Re: aGetfiles bug
Antonio, sent!
Re: aGetfiles bug
Antonio, is this included in new version?
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- 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: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: aGetfiles bug
We found your email and we are implementing it.
many thanks for the reminder
many thanks for the reminder
Re: aGetfiles bug
Antonio,
no te olvides de incluir esto ya que a mi tmb me casca.
Gracias.!
no te olvides de incluir esto ya que a mi tmb me casca.
Gracias.!
Re: aGetfiles bug
Please, what in english?