Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Пара вопросов по кодингу в Turbo C++

11K
15 июля 2005 года
Vladimir T.
8 / / 15.07.2005
Я начинающий кодер, пишу вот прогу на C в Turbo C++ 3.0.
Нужно, чтобы прога определяла в какой папке она лежит (1) и сканировала етот каталог на предмет наличия файлов с заданным именем и расширением (2) ну и создавала список этих файлов (3). Второй день копаюсь в хелпе ТурбоСи, но реализовал только первое :( ... Еще при компиляции выдаются варнинги вроде: Suspicious pointer conversion. А что это значит?
Подскажите кто-нибудь хоть что-нибудь (надо названия функций).
--
Заранее благодарен,
Владимир.
243
15 июля 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by Vladimir T.
Я начинающий кодер, пишу вот прогу на C в Turbo C++ 3.0.


А что среда разработки такая древняя, поновее ничего нету? Хотя конечно это не принципиально.

Цитата:
Originally posted by Vladimir T.

Нужно, чтобы прога определяла в какой папке она лежит (1)


GetModuleFileName(...) - определяет полное имя исполняемого в данный момент файла (*.exe или *.dll).

Цитата:
Originally posted by Vladimir T.

и сканировала етот каталог на предмет наличия файлов с заданным именем и расширением (2)


FindFirst(...) & FindNext(...) или findfirst(...) & findnext(...)

Цитата:
Originally posted by Vladimir T.

ну и создавала список этих файлов (3).


Тут что-то неясное - где создавать список? В файле? Или просто в памяти? Если в памяти, то просто создать массив строк в который добавлять эти имена. Можно использовать динамический массив - тогда при переполнении можно будет увеличить его размер. Или список, но тут немного труднее - начинающему легче запутаться будет.

Цитата:
Originally posted by Vladimir T.

Второй день копаюсь в хелпе ТурбоСи,


Потому что не там копаетесь. Нужно в MSDN'е копаться - при работе с именами файлов не станадртные Си функции, а функции API Windows используются.

Цитата:
Originally posted by Vladimir T.
выдаются варнинги вроде: Suspicious pointer conversion. А что это значит?


Можно кусок кода?
Вообще, судя по варнингу - у вас неправильно преобразуются указатели. Например указатель на переменную с большой разрядностью преобразуете в указатель для переменных с малой разрядностью. Например int * в char *.

255
16 июля 2005 года
Dart Bobr
1.4K / / 09.04.2004
Что-то мне сдается, что товарищ пишет зловредную программу ;)
11K
16 июля 2005 года
Vladimir T.
8 / / 15.07.2005
Большое спасибо, pacific_7!

Цитата:
Originally posted by pacific_7
А что среда разработки такая древняя, поновее ничего нету? Хотя конечно это не принципиально.



Да, Турбо Си 3.0 -- среда 13-летней давности под ДОС ( - Смотри, какая древность! [показывая какую-то вазу, добытую на раскопках]
- Третья версия ТурбоСи подревнее будет ... ;)), скачал ее с инета, т.к. CD-привод сломан (уже давно, все никак на новый не наскребу), установить что-нить современное варианта нет, а учиться кодить очень хотелось. А есть ли ИСР по новее и чтоб в ней программировать под Windows и самое главное -- чтобы мало весила и можно было скачать?

Цитата:
Originally posted by pacific_7
GetModuleFileName(...) - определяет полное имя исполняемого в данный момент файла (*.exe или *.dll).



Я использовал getcurdir(...) в паре с getdisc().

Цитата:
Originally posted by pacific_7
FindFirst(...) & FindNext(...) или findfirst(...) & findnext(...)



Отлично! Это как раз то, что мне было нужно (еще раз спасибо тебе, pacific_7).

Цитата:
Originally posted by pacific_7
Тут что-то неясное - где создавать список? В файле? Или просто в памяти? Если в памяти, то просто создать массив строк в который добавлять эти имена.



Массив буду использовать. Просто заранее известно максимальное кол-во файлов (и даже их возможные имена и расширения).

Цитата:
Originally posted by pacific_7
Потому что не там копаетесь. Нужно в MSDN'е копаться - при работе с именами файлов не станадртные Си функции, а функции API Windows используются.



Но моя программа под DOS и по идее все функции должны быть в библиотеках от ТурбоСИ. В общем, дальше я с файлами наверно сам разберусь.

Цитата:
Originally posted by pacific_7
Вообще, судя по варнингу - у вас неправильно преобразуются указатели. Например указатель на переменную с большой разрядностью преобразуете в указатель для переменных с малой разрядностью. Например int * в char *.


Ах вот в чем дело, уже исправил. Если б ИСР говорила по-русски (К ней есть руссификатор?)

Цитата:
Originally posted by Dart Bobr
Что-то мне сдается, что товарищ пишет зловредную программу ;)



Ничего подобного. Это упаковщик дата-блоков в ресурс-файлы для игрушки от Sierra King's Quest V.

243
16 июля 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by Vladimir T.

Я использовал getcurdir(...) в паре с getdisc().


Можно и так, но во-первых: устарело; а во вторых - сдается мне, что getcurdir не всегда сработает корректно. Она возвращает текущий каталог, а не путь к файлу. Это разные вещи. Текущий каталог устанавливается либо функцией SetCurrentDir(...) из программы, либо операционной системой при запуске программы.
Пример: попробуй запустить свою программу через ярлык и выполнить getcurdir. Результатом ее будет не каталог в ктором лежит программа, а каталог в котором нахдится ярлык. Согласись - не очень-то удобно каждый раз запускать программу добираясь до нее через дебри каталогов, а не через ярлык из меню "программы" или с рабочего стола. Так для всех программ запускаемых при старте системы из реестра текущим является личный каталог пользователя, а не реальное расположение исполняемого файла. Например C:\Documments and Settings\Administrator.
Вообще - это все относится к GetCurrentDir, но т.к. она является аналогом старой getcurdir, то и принцип рабты думаю тот же.

Цитата:
Originally posted by Vladimir T.

Но моя программа под DOS и по идее все функции должны быть в библиотеках от ТурбоСИ. В общем, дальше я с файлами я наверно сам разберусь.


А что так? Под ДОС??? Где это он еще используется в качестве настольной ОС? Ну, про getcurdir для винды я тебя предупредил, а в ДОСе понятно нет ни ярлыков, ни реестра. Правда, текущую директорию и там можно сменить. В общем - будь осторожен. :)

Цитата:
Originally posted by Vladimir T.

Ах вот в чем дело, уже исправил. Если б ИСР говорила по-русски (К ней есть руссификатор?)


Есть - это практически наверняка. НО! Если и найдешь, то ставить не советую: 1 - добавится глюков; 2 - один фиг, если серьезно заниматься программированием, то в любом случае придется по английски учиться читать, не будешь же MSDN весь переводить; 3 - это смущает только первые полгода/год, дальше без проблем научишься читать справки по программированию. Главное - не лениться по началу залезать в словарик.

Цитата:
Originally posted by Dart Bobr

Что-то мне сдается, что товарищ пишет зловредную программу


Кто бы говорил! :D

11K
16 июля 2005 года
Vladimir T.
8 / / 15.07.2005
Цитата:
Originally posted by pacific_7

А что так? Под ДОС??? Где это он еще используется в качестве настольной ОС?


То есть запускаться прога будет под виндой, но она будет досовая. Все потому что нету среды (компилера, хотя по идее им одним не обойтись) под WIN. Люди, ну может кто знает где можно скачать си (++) IDE под винду (размер поменьше)?

Цитата:
Originally posted by pacific_7
В общем - будь осторожен. :)


Буду. ;)

406
16 июля 2005 года
vitaly2003s
481 / / 27.07.2004
Цитата:
Originally posted by Vladimir T.
То есть запускаться прога будет под виндой, но она будет досовая. Все потому что нету среды (компилера, хотя по идее им одним не обойтись) под WIN. Люди, ну может кто знает где можно скачать си (++) IDE под винду (размер поменьше)?



Разве у вас в городе на прилавке нельзя найти какую нить студию? Если нет то поищи в инете и закажи,недельки через 2 - 3 придет. Поищи Visual Studio .Net + MSDN

10
17 июля 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Vladimir T.
скачал ее с инета, т.к. CD-привод сломан (уже давно, все никак на новый не наскребу), установить что-нить современное варианта нет, а учиться кодить очень хотелось.


Под такое благое дело могу даже CD-ROM подарить. Правда, он временами не все диски читает, но как замена для ничего - очень даже. Проблема одна - самовывоз. :( Я даже не прикидываю: Ейск - это где? Лень по карте смотреть.

243
17 июля 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by Freeman
Под такое благое дело могу даже CD-ROM подарить. Правда, он временами не все диски читает, но как замена для ничего - очень даже. Проблема одна - самовывоз. :( Я даже не прикидываю: Ейск - это где? Лень по карте смотреть.


2 балла за географию отечества!
Ейск - находится в моем долбанном Краснодарском крае. На самом севере - берег Азова. Выручай человека.
ЗЫ Там еще чего-нибудь лишнего не завалялось?

11K
18 июля 2005 года
Vladimir T.
8 / / 15.07.2005
Цитата:
Originally posted by Freeman
Под такое благое дело могу даже CD-ROM подарить. Правда, он временами не все диски читает, но как замена для ничего - очень даже. Проблема одна - самовывоз. :( Я даже не прикидываю: Ейск - это где? Лень по карте смотреть.


Спасибо, интересное предложение... (есть еще добрые люди на свете :)) Но кажись 20-ого числа на стройке(я тама подсобник; геморная работа :P ) должны лавэ заплатить и я куплю себе привод :).
Кстати, я не в курсе где находится Зеленоград (и мине по географии двойка ;)).

10
18 июля 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by pacific_7
Ейск - находится в моем долбанном Краснодарском крае. На самом севере - берег Азова. Выручай человека.


Угу, я уже сам посмотрел по карте. Уж очень интересно стало.

Цитата:
Originally posted by pacific_7
ЗЫ Там еще чего-нибудь лишнего не завалялось?


Если внимательно посмотреть по другим постам, я еще модем снял. Старый, внутренний Winmodem, одна из первых моделей на 56k.

Цитата:
Originally posted by Vladimir T.
Кстати, я не в курсе где находится Зеленоград (и мине по географии двойка ;)).


Зеленоград - это Подмосковье, от Москвы в сторону Питера.

243
18 июля 2005 года
pacific_7
1.9K / / 06.09.2004
Цитата:
Originally posted by Freeman
Если внимательно посмотреть по другим постам, я еще модем снял. Старый, внутренний Winmodem, одна из первых моделей на 56k.


Не, спасибо, это не интересно :) Винмодем у меня и у самого есть - Зюхель. Ладно - в очередной раз халява не катит. Это хорошо, что бы не расслаблялся.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог