Сейчас на форуме: (+4 невидимых)

 eXeL@B —› Вопросы новичков —› Посоветуйте на тему sprintf.
Посл.ответ Сообщение

Ранг: 11.1 (новичок)
Активность: 0.010
Статус: Участник

Создано: 09 мая 2006 01:34
· Личное сообщение · #1

Есть тут одна игруха, цепляется за диск а хотелось бы ее отцепить.
Впринципе все просто, имена файлов ресурсов генерятся ф-цией
sprintf(buf,"%c:\data\file.res",drive); Все хорошо и понятно. Можно строку формата
сменить и все. Но вот порой вылезает там что то типа
sprintf(buf,"%c:\data\mission%d.miss",drive,id); Понятно что особых проблем все равно
нет, ибо код не паковный, без лишних проверок, но захотелось узнать есть ли
какой нибудь способ изящьно это обойти... Минимальными телодвижениями?




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 09 мая 2006 02:21 · Поправил: Hellspawn
· Личное сообщение · #2

эээ.... несколько раз прочитал, но так толком и не понял, о чём ты просишь...
1) тебе надо отучить игру от диска - понятно..
2) ты подменяешь пути, дабы всё искалось на харде..

а в чём проблема то?

-----
[nice coder and reverser]




Ранг: 34.9 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 09 мая 2006 03:03
· Личное сообщение · #3

Menyai parameter 'drive', a strukturu papok sozdavai na vinte. IMHO eto minimalnoe vmeshatelstvo. No skoree vsego vmeshatelstvo v kod ne potrebuetsya, poprobui naiti gde pri ustanovke propisyvaetsya bukva siduka(ya tak otuchil igru 'orda', tam v papke s igroi legal fail 'cd') i zameni.



Ранг: 11.1 (новичок)
Активность: 0.010
Статус: Участник

Создано: 09 мая 2006 20:16
· Личное сообщение · #4

Таки меня не поняли... Как отлучить не вопрос. Если уменя в snprintf
"%c:\data\res",drive - можно сменить на что нибудь типа
".\.\data\res" или "data\res0x00%c" и все красиво,
но если там "%c:\data\mission%d",drive,mission то можно ли как нибудь
строку формата поменять чтобы первая переменная выпала, а вторая осталась?



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 10 мая 2006 10:21
· Личное сообщение · #5

jara пишет:
как нибудь
строку формата поменять чтобы первая переменная выпала, а вторая осталась?

Изящно нельзя. Формат вообще не надо трогать. Коррекируй либо адрес переменной drive - это муторно, либо при заполнении переменной drive заполни ее тем, чем надо.
Наиболее красиво, заменить %c на %s , а в drive положить D:\games\gam1 - путь где файлы с СиДи лежат.


 eXeL@B —› Вопросы новичков —› Посоветуйте на тему sprintf.
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати