![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| ReGeDiT |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 4.7.2006 Где: Пущино на Оке Репутация: нет Всего: нет |
суть программы:
внутри файла x.x есть блоки с переменными:
в каждом блоке надо сравнить string1 и string2 проблема возникает при определении значений string1 и string2 моя ужасная программа
|
||||
|
|||||
| Fedor |
|
|||
![]() Днепрянин ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2090 Регистрация: 8.2.2003 Где: Великий Репутация: нет Всего: 32 |
ReGeDiT, во-первых, инициализацию можешь сделать для всей строки целиком.
Во-вторых, строки сравниваются с помощью функции strcmp или strncmp (сравнивает первые n символов, и это тебе вполне может пригодится) В-третьих, знак равенства по-моему не является разделителем, а значит, прочитается сразу вся строка. В общем, делаешь так: читаешь всю строку, вырезаешь в ней все до равенства и сравниваешь со "string1". Если это действительно string1, вырезаешь все что после знака равенства и запоминаешь в переменную. (строки копируются функцией strcpy, или strncpy) Таким же образом находишь string2. Когда нашел string2, сравниваешь значения с помощью strcmp. З.Ы. Может, есть красивее решение, но на несвежую голову придумал вот такое простое. Это сообщение отредактировал(а) Fedor - 4.7.2006, 23:17 -------------------- Мы - Днепряне. Мы всех сильней. |
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
если в винде, то используй API
|
|||
|
||||
| ReGeDiT |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 4.7.2006 Где: Пущино на Оке Репутация: нет Всего: нет |
Fedor
Oo хм... про идею с первыми символами это неплохо, но мне сказали что такая фишка не прокатит с переменной типа %s
пока что-то вроде этого... |
|||
|
||||
| ReGeDiT |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 4.7.2006 Где: Пущино на Оке Репутация: нет Всего: нет |
Fedor, ах да, strcmp ведь будет сравнивать только char значения, у меня задача перевести значения после "=" в %d (int)
и как вырезать всё ПОСЛЕ "string1="? |
|||
|
||||
| ptr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 661 Регистрация: 31.5.2006 Где: Новосибирск Репутация: 1 Всего: 14 |
Ну можешь например так получить значения:
Это сообщение отредактировал(а) ptr - 5.7.2006, 07:03 -------------------- Единственный способ определить границы возможного - это выйти за эти границы, в невозможное. Артур Кларк. |
|||
|
||||
| Rockie |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 23.4.2006 Репутация: 8 Всего: 31 |
ptr, точно.
ReGeDiT, вот полный пример
похоже рекомендуют использовать строки (string.h). кто может подсказать грамотное преобразование string в int? то есть доделать что-то вроде этого
компилятор BCBuilder 6 p.s.: вообще странно но я не нашел ничего вроде StrToInt из AnsiString но для string. -------------------- Чтобы иметь большой гардероб - надо иметь большой гардероб. |
||||
|
|||||
| Oleg_Ci |
|
|||
![]() Friend ![]() ![]() Профиль Группа: Участник Сообщений: 485 Регистрация: 28.5.2006 Где: Новосиб.обл. Репутация: 3 Всего: 30 |
Сочинил програмку, Borland C++ Builder 6.
Это сообщение отредактировал(а) Олег4 - 5.7.2006, 17:54 |
|||
|
||||
| ReGeDiT |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 4.7.2006 Где: Пущино на Оке Репутация: нет Всего: нет |
спасибо огромное... вопрос почти решён )) признаю что я делаю программу под один из серверов игры WoW...
вот что я наделал:
файл x.x
в последних трёх спецово даны неправильные значения... НО!!! почемуто в логе потом появляется что-то ужасное З.Ы. Начал пробовать перегонять всё под Visual C++ 7.0 Net >> удивился, но обычный импорт кода и программа работоспособна... теперь подскажите или дайте ссылку куданить на создание простейших видов интерфейса... или чтонить типа "Visual С++ для лашей" )) |
||||
|
|||||
| ReGeDiT |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 4.7.2006 Где: Пущино на Оке Репутация: нет Всего: нет |
ыы и сорри, оверпостинг .... =) но кстати у меня даже после сканирования всего файла и дохождения до EOF (конца...) программа всеравно гоняет по файлу, и ни в какую не хочет закрываццо
|
|||
|
||||
| ptr |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 661 Регистрация: 31.5.2006 Где: Новосибирск Репутация: 1 Всего: 14 |
Ты закрываешь файл до того как проверяешь условие !feof(fp), поэтому оно и не выполняется. Делай fclose(fp) после цикла. У std::string нет методов для преобразования. Можно сделать так:
Это сообщение отредактировал(а) ptr - 6.7.2006, 06:28 -------------------- Единственный способ определить границы возможного - это выйти за эти границы, в невозможное. Артур Кларк. |
||||
|
|||||
| Rockie |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 23.4.2006 Репутация: 8 Всего: 31 |
-------------------- Чтобы иметь большой гардероб - надо иметь большой гардероб. |
|||
|
||||
| ReGeDiT |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 4.7.2006 Где: Пущино на Оке Репутация: нет Всего: нет |
ptr, спасибо ))
осталось нерешено только 2 вопроса: почему в файле не пишется имя (*name)
и как сделать определение ID предмета
|
||||
|
|||||
| ReGeDiT |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 4.7.2006 Где: Пущино на Оке Репутация: нет Всего: нет |
и кстати, при выводе, выводится всё до пробела |
|||
|
||||
| ptr |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 661 Регистрация: 31.5.2006 Где: Новосибирск Репутация: 1 Всего: 14 |
Старая програма такого файла не генерит. Выложи новый вариант. Кстати а зачем в ней
Можешь, например, получать из файла так:
или из строки:
Это сообщение отредактировал(а) ptr - 7.7.2006, 18:45 -------------------- Единственный способ определить границы возможного - это выйти за эти границы, в невозможное. Артур Кларк. |
||||||
|
|||||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |