|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.04.2012, 16:24 | #1 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Странное поседение скрипта
Написал простенький скрипт.
Скрипт должен считывать из файла вещественное число, декрементировать его и снова записывать в файл. Всё работает, но когда значение доходит до xxx.1. Например 200.1, 199.1 и т.д. декремент не выполняется. Ума не приложу, в чём проблема. Код:
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 15.04.2012 в 19:52. |
15.04.2012, 20:46 | #2 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,160
|
честно говоря не очень ясно использование file_get_contents ... fread чем плох?
PHP код:
|
16.04.2012, 06:53 | #3 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Цитата:
Попробую открыть файл в бинарном режиме.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
|
16.04.2012, 10:54 | #4 |
Меркантильный кю
Участник клуба
Регистрация: 02.02.2008
Сообщений: 1,001
|
Забавная бага. В винде (Вы ведь в ней тестировали?) есть проблемы с режимами открытия файла. В итоге у Вас получалось вот что
2000.2 (6 байт) => 2000.1 (6 байт) 2000.1 (6 байт) => 2000 (4 байта) т.е. число нормально уменьшалось, но перезаписывались только первые 4 байта файла, а .1 оставалось на месте Вот рабочий код (путь к файлу поменял) Код:
Росли вроде умными, выросли дурнями... (c)А.Васильев
|
16.04.2012, 11:39 | #5 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Я тестировал на сервере Агава. PHP 5.1 Apach.
Возможно так оно и есть, как Вы говорите, но тестировал я и с меньшими числами. Вышел из положения таким образом: Код:
А что означает var_dump?
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 16.04.2012 в 11:43. |
16.04.2012, 11:52 | #6 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,160
|
вывод: юзать БД и не париться с файлами )))
|
16.04.2012, 11:53 | #7 |
Меркантильный кю
Участник клуба
Регистрация: 02.02.2008
Сообщений: 1,001
|
Если честно, уже не помню, что там за баги с режимами открытия, давно ничего в файлы не писал, всё в бд Но помню что глюки были. Как минимум в Винде надо писать режим - текстовый или бинарный
А это неважно - меньше больше. Трабла именно в том, что остаётся кусок старого файла, что Вы и обошли, открыв его заново на запись. var_dump - вывод значения и типа переменной
Росли вроде умными, выросли дурнями... (c)А.Васильев
|
16.04.2012, 12:00 | #8 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Вообще-то предполагается рабтать с БД, но это тестовая заглушка для отладки обращения к скрипту из программы на Борланде.
Дело в том, что хост, на котором висит мой сайт, не позволяет обращаться к БД напрямую, только через PHP-скрипт. Поэтому сокеты тут не катят. В идеале это будет работать так. Программа на Борланде обращается к скрипту на сервере через виртуальный CppWebBrowser. В запросе передаются логин и пароль пользователя (известные программе). Скрипт ищет этого пользователя в базе данных и если он зарегистрирован и у него не нулевой баланс, формирует файл с суммой баланса. Соответственно производит действия с базой данных. Для каждого пользователя с ненулевым балансом формируется свой файл, с уникальным именем (по логину). Поскольку логин известен и программе, она этот файл считывает и отображает текущий баланс (ну и делает всё, что с ним связано). Вот, примерно так. Может кто знает способ получше? Буду рад, если подскажете. Спасибо за пояснение. PHP занимаюсь не так долго (около полугода). Не всё ещё ясно.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 16.04.2012 в 12:22. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Странное отоброжение | MaRKer.nsk | HTML и CSS | 1 | 31.03.2012 18:00 |
Странное поведение gets | alex_alpha | Общие вопросы C/C++ | 3 | 27.03.2010 18:21 |
Странное решение | Syltan | Общие вопросы C/C++ | 9 | 01.09.2009 21:01 |
Че-то странное .... | ~Brilliant~ | Безопасность, Шифрование | 9 | 27.04.2009 13:57 |
Странное закрытие | joker | Win Api | 18 | 29.03.2008 07:45 |