wininet.dll
FList типа WIN32_FIND_DATA
Теперь смотрю имя удалённого файла в дебагере:
print FList.cFileName=0.zip ota нћzЇPmщ^ш_ЄBFЃ eїпCЭx—‰•® фШ#НўrmieV.ИsА9µіТпР/Іигнн"Вѕжо,u@^гЖЧёґtс{†¬рДkНЭ&ђLg$P \чurпщ%щжbчRnЏ„мњОTj
©ЯбБщќ;ыж‡"‰О2cщЉЫ–AuТ%хcbВШV‰Иb,
ЯTпHсЌІ2ЛН6є‚HСњUfхХљи~c·@+,•DмУu{УyНГљ СmЩDВ{џ—OЫ•¤Рh€Tg‚({џ¬5ьЌн0K/ct›ъw¦>§XXhРW\є
И там какая то уйня...
0.zip - реальное имя файла, он есть на FTP, но вот что за ним... Откуда оно берётся? И каждый раз другие кракозяблики:(
Как с этим бороться?
Цитата: lonejan
Пишу прогу для обмена остатками по FTP. Юзаю wininet.dll, фигня получается когда я получаю список файлов с FTP. Создал тип WIN32_FIND_DATA. Получаю в цикле все файлы, но когда пытаюсь посмотреть имя файла:
FList типа WIN32_FIND_DATA
Теперь смотрю имя удалённого файла в дебагере:
print FList.cFileName=0.zip ota нћzЇPmщ^ш_ЄBFЃ eїпCЭx—‰•® фШ#НўrmieV.ИsА9µіТпР/Іигнн"Вѕжо,u@^гЖЧёґtс{†¬рДkНЭ&ђLg$P \чurпщ%щжbчRnЏ„мњОTj
©ЯбБщќ;ыж‡"‰О2cщЉЫ–AuТ%хcbВШV‰Иb,
ЯTпHсЌІ2ЛН6є‚HСњUfхХљи~c·@+,•DмУu{УyНГљ СmЩDВ{џ—OЫ•¤Рh€Tg‚({џ¬5ьЌн0K/ct›ъw¦>§XXhРW\є
И там какая то уйня...
0.zip - реальное имя файла, он есть на FTP, но вот что за ним... Откуда оно берётся? И каждый раз другие кракозяблики:(
Как с этим бороться?
FList типа WIN32_FIND_DATA
Теперь смотрю имя удалённого файла в дебагере:
print FList.cFileName=0.zip ota нћzЇPmщ^ш_ЄBFЃ eїпCЭx—‰•® фШ#НўrmieV.ИsА9µіТпР/Іигнн"Вѕжо,u@^гЖЧёґtс{†¬рДkНЭ&ђLg$P \чurпщ%щжbчRnЏ„мњОTj
©ЯбБщќ;ыж‡"‰О2cщЉЫ–AuТ%хcbВШV‰Иb,
ЯTпHсЌІ2ЛН6є‚HСњUfхХљи~c·@+,•DмУu{УyНГљ СmЩDВ{џ—OЫ•¤Рh€Tg‚({џ¬5ьЌн0K/ct›ъw¦>§XXhРW\є
И там какая то уйня...
0.zip - реальное имя файла, он есть на FTP, но вот что за ним... Откуда оно берётся? И каждый раз другие кракозяблики:(
Как с этим бороться?
Уточни пожалуйста вопрос. Что именно вам нужно? В структуре WIN32_FIND_DATA - имя файла - строка размером MAX_PATH - т.е. в зависимости от системы имеет минимум 128 (помоему в вынь95). Поэтому то что вы смотрите это обыкновенный мусор в памяти.
То что мусор памяти я и сам вижу:) вопрос в том можно ли его не получать?:/ Или его надо только ручками потом чистить?
Цитата: lonejan
То что мусор памяти я и сам вижу:) вопрос в том можно ли его не получать?:/ Или его надо только ручками потом чистить?
Что чистить? Ты считываешь сроку для конца и все. Ничего чистить не надо. И не получаешь :) это мусор в памяти твоей машины :)
Код:
FileList(i&).cFileName = Left(FileList(i&).cFileName, InStr(1, FileList(i&).cFileName, String(1, 0), vbBinaryCompare) - 1)
Цитата: lonejan
Да не... Как раз всё получаешь. Или вы думаете, что я его специально дебагером пробивал эту ерунду:)) Потом вывожу экран в форме и эта херня вся на экране. Я тут пример один скачал из сети, там с этим борюццо вот такъ:
Код:
FileList(i&).cFileName = Left(FileList(i&).cFileName, InStr(1, FileList(i&).cFileName, String(1, 0), vbBinaryCompare) - 1)
Хз. Может это фича конкретного ФТП или связанно с тем что файл удален?
К сожалению сейчас нет времени тестировать.
Попробуй так и опиши что получилось:
Код:
char name[MAX_PATH];
memset(name,"\0",sizeof(name));
strcpy(name,FList.cFileName)
memset(name,"\0",sizeof(name));
strcpy(name,FList.cFileName)