Пара вопросов по кодингу в Turbo C++
Нужно, чтобы прога определяла в какой папке она лежит (1) и сканировала етот каталог на предмет наличия файлов с заданным именем и расширением (2) ну и создавала список этих файлов (3). Второй день копаюсь в хелпе ТурбоСи, но реализовал только первое :( ... Еще при компиляции выдаются варнинги вроде: Suspicious pointer conversion. А что это значит?
Подскажите кто-нибудь хоть что-нибудь (надо названия функций).
--
Заранее благодарен,
Владимир.
Я начинающий кодер, пишу вот прогу на C в Turbo C++ 3.0.
А что среда разработки такая древняя, поновее ничего нету? Хотя конечно это не принципиально.
Нужно, чтобы прога определяла в какой папке она лежит (1)
GetModuleFileName(...) - определяет полное имя исполняемого в данный момент файла (*.exe или *.dll).
и сканировала етот каталог на предмет наличия файлов с заданным именем и расширением (2)
FindFirst(...) & FindNext(...) или findfirst(...) & findnext(...)
ну и создавала список этих файлов (3).
Тут что-то неясное - где создавать список? В файле? Или просто в памяти? Если в памяти, то просто создать массив строк в который добавлять эти имена. Можно использовать динамический массив - тогда при переполнении можно будет увеличить его размер. Или список, но тут немного труднее - начинающему легче запутаться будет.
Второй день копаюсь в хелпе ТурбоСи,
Потому что не там копаетесь. Нужно в MSDN'е копаться - при работе с именами файлов не станадртные Си функции, а функции API Windows используются.
выдаются варнинги вроде: Suspicious pointer conversion. А что это значит?
Можно кусок кода?
Вообще, судя по варнингу - у вас неправильно преобразуются указатели. Например указатель на переменную с большой разрядностью преобразуете в указатель для переменных с малой разрядностью. Например int * в char *.
А что среда разработки такая древняя, поновее ничего нету? Хотя конечно это не принципиально.
Да, Турбо Си 3.0 -- среда 13-летней давности под ДОС ( - Смотри, какая древность! [показывая какую-то вазу, добытую на раскопках]
- Третья версия ТурбоСи подревнее будет ... ;)), скачал ее с инета, т.к. CD-привод сломан (уже давно, все никак на новый не наскребу), установить что-нить современное варианта нет, а учиться кодить очень хотелось. А есть ли ИСР по новее и чтоб в ней программировать под Windows и самое главное -- чтобы мало весила и можно было скачать?
GetModuleFileName(...) - определяет полное имя исполняемого в данный момент файла (*.exe или *.dll).
Я использовал getcurdir(...) в паре с getdisc().
FindFirst(...) & FindNext(...) или findfirst(...) & findnext(...)
Отлично! Это как раз то, что мне было нужно (еще раз спасибо тебе, pacific_7).
Тут что-то неясное - где создавать список? В файле? Или просто в памяти? Если в памяти, то просто создать массив строк в который добавлять эти имена.
Массив буду использовать. Просто заранее известно максимальное кол-во файлов (и даже их возможные имена и расширения).
Потому что не там копаетесь. Нужно в MSDN'е копаться - при работе с именами файлов не станадртные Си функции, а функции API Windows используются.
Но моя программа под DOS и по идее все функции должны быть в библиотеках от ТурбоСИ. В общем, дальше я с файлами наверно сам разберусь.
Вообще, судя по варнингу - у вас неправильно преобразуются указатели. Например указатель на переменную с большой разрядностью преобразуете в указатель для переменных с малой разрядностью. Например int * в char *.
Ах вот в чем дело, уже исправил. Если б ИСР говорила по-русски (К ней есть руссификатор?)
Что-то мне сдается, что товарищ пишет зловредную программу ;)
Ничего подобного. Это упаковщик дата-блоков в ресурс-файлы для игрушки от Sierra King's Quest V.
Я использовал getcurdir(...) в паре с getdisc().
Можно и так, но во-первых: устарело; а во вторых - сдается мне, что getcurdir не всегда сработает корректно. Она возвращает текущий каталог, а не путь к файлу. Это разные вещи. Текущий каталог устанавливается либо функцией SetCurrentDir(...) из программы, либо операционной системой при запуске программы.
Пример: попробуй запустить свою программу через ярлык и выполнить getcurdir. Результатом ее будет не каталог в ктором лежит программа, а каталог в котором нахдится ярлык. Согласись - не очень-то удобно каждый раз запускать программу добираясь до нее через дебри каталогов, а не через ярлык из меню "программы" или с рабочего стола. Так для всех программ запускаемых при старте системы из реестра текущим является личный каталог пользователя, а не реальное расположение исполняемого файла. Например C:\Documments and Settings\Administrator.
Вообще - это все относится к GetCurrentDir, но т.к. она является аналогом старой getcurdir, то и принцип рабты думаю тот же.
Но моя программа под DOS и по идее все функции должны быть в библиотеках от ТурбоСИ. В общем, дальше я с файлами я наверно сам разберусь.
А что так? Под ДОС??? Где это он еще используется в качестве настольной ОС? Ну, про getcurdir для винды я тебя предупредил, а в ДОСе понятно нет ни ярлыков, ни реестра. Правда, текущую директорию и там можно сменить. В общем - будь осторожен. :)
Ах вот в чем дело, уже исправил. Если б ИСР говорила по-русски (К ней есть руссификатор?)
Есть - это практически наверняка. НО! Если и найдешь, то ставить не советую: 1 - добавится глюков; 2 - один фиг, если серьезно заниматься программированием, то в любом случае придется по английски учиться читать, не будешь же MSDN весь переводить; 3 - это смущает только первые полгода/год, дальше без проблем научишься читать справки по программированию. Главное - не лениться по началу залезать в словарик.
Что-то мне сдается, что товарищ пишет зловредную программу
Кто бы говорил! :D
А что так? Под ДОС??? Где это он еще используется в качестве настольной ОС?
То есть запускаться прога будет под виндой, но она будет досовая. Все потому что нету среды (компилера, хотя по идее им одним не обойтись) под WIN. Люди, ну может кто знает где можно скачать си (++) IDE под винду (размер поменьше)?
В общем - будь осторожен. :)
Буду. ;)
То есть запускаться прога будет под виндой, но она будет досовая. Все потому что нету среды (компилера, хотя по идее им одним не обойтись) под WIN. Люди, ну может кто знает где можно скачать си (++) IDE под винду (размер поменьше)?
Разве у вас в городе на прилавке нельзя найти какую нить студию? Если нет то поищи в инете и закажи,недельки через 2 - 3 придет. Поищи Visual Studio .Net + MSDN
скачал ее с инета, т.к. CD-привод сломан (уже давно, все никак на новый не наскребу), установить что-нить современное варианта нет, а учиться кодить очень хотелось.
Под такое благое дело могу даже CD-ROM подарить. Правда, он временами не все диски читает, но как замена для ничего - очень даже. Проблема одна - самовывоз. :( Я даже не прикидываю: Ейск - это где? Лень по карте смотреть.
Под такое благое дело могу даже CD-ROM подарить. Правда, он временами не все диски читает, но как замена для ничего - очень даже. Проблема одна - самовывоз. :( Я даже не прикидываю: Ейск - это где? Лень по карте смотреть.
2 балла за географию отечества!
Ейск - находится в моем долбанном Краснодарском крае. На самом севере - берег Азова. Выручай человека.
ЗЫ Там еще чего-нибудь лишнего не завалялось?
Под такое благое дело могу даже CD-ROM подарить. Правда, он временами не все диски читает, но как замена для ничего - очень даже. Проблема одна - самовывоз. :( Я даже не прикидываю: Ейск - это где? Лень по карте смотреть.
Спасибо, интересное предложение... (есть еще добрые люди на свете :)) Но кажись 20-ого числа на стройке(я тама подсобник; геморная работа :P ) должны лавэ заплатить и я куплю себе привод :).
Кстати, я не в курсе где находится Зеленоград (и мине по географии двойка ;)).
Ейск - находится в моем долбанном Краснодарском крае. На самом севере - берег Азова. Выручай человека.
Угу, я уже сам посмотрел по карте. Уж очень интересно стало.
ЗЫ Там еще чего-нибудь лишнего не завалялось?
Если внимательно посмотреть по другим постам, я еще модем снял. Старый, внутренний Winmodem, одна из первых моделей на 56k.
Кстати, я не в курсе где находится Зеленоград (и мине по географии двойка ;)).
Зеленоград - это Подмосковье, от Москвы в сторону Питера.
Если внимательно посмотреть по другим постам, я еще модем снял. Старый, внутренний Winmodem, одна из первых моделей на 56k.
Не, спасибо, это не интересно :) Винмодем у меня и у самого есть - Зюхель. Ладно - в очередной раз халява не катит. Это хорошо, что бы не расслаблялся.