Форум программистов, компьютерный форум CyberForum.ru

Перевод строки - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.94
twista
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 79
16.08.2010, 18:46     Перевод строки #1
Уважаемые программисты,подкиньте рабочий код что бы вместо точки с запятой можно было передать перевод строки,после чего выполнялась бы последовательность команд , вот часть кода (часть,сказали надо на ассемблере писать)помогите с кодом
C++
1
2
3
while (*sstr++) {
if(*sstr)==";" { *sstr = "\r"
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2010, 18:46     Перевод строки
Посмотрите здесь:

C++ Перевод из строки в число
C++ перевод строки
C++ Строки. перевод
Перевод строки в число C++
C++ Перевод строки в число
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
16.08.2010, 18:50     Перевод строки #2
C
1
2
3
4
5
6
7
while ( *sstr ){
    if ( *sstr == ';' ){
        *sstr = '\n';
        /* последовательность команд */
    }
    ++sstr;
}
twista
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 79
16.08.2010, 19:04  [ТС]     Перевод строки #3
то есть получалось /callvote map mp_backlot а мне надо /callvote "map ; rcon_password;" этот код подойдет?мне сразу надо что бы переход делала строки на следующую команду
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
16.08.2010, 19:09     Перевод строки #4
Этот код сделает из этого:
Код
 /callvote "map ; rcon_password;"
вот это:
Код
 /callvote "map 
 rcon_password
 "
Т.е. он вставляет вместо символа ';' символ новой строки
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
16.08.2010, 19:31     Перевод строки #5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main(void){
    char cmdStr[BUFSIZ] = { 0 }, inStr[BUFSIZ] = "echo hello world;echo goodbye world;", * pInStr, * pStartCmd;
 
    for ( pStartCmd = pInStr = inStr; *pInStr; ++pInStr ){
        if ( *pInStr == ';' ){
            strncpy(cmdStr, pStartCmd, pInStr - pStartCmd);
            system(cmdStr);
            pStartCmd = pInStr + 1;
        }
    }
 
    exit(EXIT_SUCCESS);
}
twista
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 79
16.08.2010, 19:43  [ТС]     Перевод строки #6
нет вот есть стандартные команды map_restart,map_rotate и т.п. и проводится они голосванием по такой прописи /callvote map mp_backlot , а если вместо точки с запятой передать перевод строки, то выполнится последователность команд таким образом в конечном итоге будет выглядеть /callvote map "mp_backlot;rcon_password(произвольная команда)"
easybudda
16.08.2010, 19:51
  #7

Не по теме:

Цитата Сообщение от twista Посмотреть сообщение
нет вот есть стандартные команды map_restart,map_rotate и т.п. и проводится они голосванием по такой прописи /callvote map mp_backlot , а если вместо точки с запятой передать перевод строки, то выполнится последователность команд таким образом в конечном итоге будет выглядеть /callvote map "mp_backlot;rcon_password(произвольная команда)"
Вам бы шарады составлять...

twista
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 79
17.08.2010, 14:53  [ТС]     Перевод строки #8
ок спс)можете мне этот код в машинный скомпилировать
C++
1
2
3
4
5
6
7
while ( *sstr ){
    if ( *sstr == ';' ){
        *sstr = '\n';
        /* последовательность команд */
    }
    ++sstr;
}
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
17.08.2010, 14:55     Перевод строки #9
twista, это весь код, который нужно скомпилировать?
twista
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 79
17.08.2010, 14:57  [ТС]     Перевод строки #10
да это весь
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
17.08.2010, 15:03     Перевод строки #11
Не хочу тебя огорчать, но ничего не получится
twista
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 79
17.08.2010, 16:51  [ТС]     Перевод строки #12
почему?о_О
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
17.08.2010, 17:00     Перевод строки #13
Потому что в таком виде оно не скомпилируется
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
17.08.2010, 17:01     Перевод строки #14
Цитата Сообщение от twista Посмотреть сообщение
почему?о_О
Попробуйте к велосипедному рулю приделать звонок и покататься на том, что получится.
Это не законченная программа, это даже не функция - просто кусок кода. Ни один компилятор не поймёт, что Вы от него хотите...
Кстати, Вы бы подробно и по возможности понятно объяснили, чего Вы добиться пытаетесь - и нам бы Вам помочь проще было...
twista
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 79
21.08.2010, 13:11  [ТС]     Перевод строки #15
мне надо этот код,запихать в exe файл...но мне сказали что надо его сначала в машинный код скомпелировать...вот и спросил...
C++
1
2
3
4
5
6
7
while ( *sstr ){
    if ( *sstr == ';' ){
        *sstr = '\n';
        /* последовательность команд */
    }
    ++sstr;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
21.08.2010, 13:39     Перевод строки #16
Цитата Сообщение от twista Посмотреть сообщение
мне надо этот код,запихать в exe файл...но мне сказали что надо его сначала в машинный код скомпелировать...
Ерунда какая-то. Переменная sstr должна указывать на какую-то последовательность байтов в памяти. Указатель на что должен в этот блок кода в собранном exe файле передаваться? Даже если и написать програмку, содержащую этот код, скомпилировать и найти в скомпилированном файле место, с которого блок начинается - каким макаром его из одного exe файла в другой exe файл запихивать собираетесь? Копи-пастом в хекседите?
illuminati
20 / 20 / 4
Регистрация: 14.06.2010
Сообщений: 108
21.08.2010, 13:56     Перевод строки #17
Если в ехешник нужно параметры передавать, не проще ли через *.bat ?
Собственно что я понял... Это игра какая-то что-ли?
twista
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 79
21.08.2010, 14:03  [ТС]     Перевод строки #18
вот что мне надо:1.Есть exe файл сетевой игры.2.В нем есть функция голосования на серверах ,которая производится командой /callvote map mp_bloc(пример карты)3.Мне нужно найти в exe нике строку отправки голосования на сервер и сказать в этой строке что бы она за место ; делала переводы строк 4.в конечном итоге зайдя на какой либо сервер мне надо что бы я после осоновной команды мог вставить после ; другую команду (пример:/callvote map "mp_bloc ; rcon_password 231"
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
21.08.2010, 14:05     Перевод строки #19
twista,
Вы что пытаетесь сделать? Модифицировать сторонний экзешник, добавив в него данный код?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2010, 14:15     Перевод строки
Еще ссылки по теме:

C++ Перевод из строки в число
C++ перевод строки CHAR
Перевод строки в дату C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,270
21.08.2010, 14:15     Перевод строки #20
Плохой ответ. Даже если тредстартер умудрится запихать экзешник в отладчик, сдаётся мне, он закалебётся пыль глотать, вычленять оттуда участок, соответствующий приведённому коду.

Тредстартер, странный ты парень. Я тебе что сказал в той теме делать?
Вставка кода в exe-ый файл

Ну, короче, вот тебе один из выходов из ситуации.
Берёшь компилятор компилятр gcc (кстати, он идёт в комлекте с DEV C++) и вот эту книгу:
GCC_полное_руководство_Артур_Гриффитс.djvu (ищешь в инете)

Теперь читаешь там среди всего прочего в разделе "атрибуты, используемые при объявлении функций"

section "функция с таким атрибутом будет иметь именованные разделы (секции) ассемблерного кода (вместо одного раздела text по умолчанию). Вот пример заголовка функции, имеющей раздел с именем specials:

void mspec (void) __atribute__ ((section "specials")));

Этот атрибут будет игнорироваться в системах, не поддерживающих секционирование"


Так, теперь тебе твой код надо оформить в виде функции, например, так: (не забывая про main и прочие правила написания кода)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void mspec (void) __attribute__ ((section ("specials")));
 
void mspec (void) {
 while ( *sstr ){
    if ( *sstr == ';' ){
        *sstr = '\n';
    }
    ++sstr;
  }
 }
 
 
 
int main () {
 return 0;
}

Эта херь не скомпильнётся, конечно. но ты уж сообщи компилятору указатель на какой тип данных есть переменная sstr и с чем её едят.

Смысл такой: должна создаться секция "specials", содержание которой- есть твой код. Ничего лишнего, только самое необходимое. Пожалуйста, дампируй его содержимое любым известным тебе способом (с помощью отладчика, hex-редактора или вручную и прописывай куда тебе надо)

Второй способ такой: (я бы его предпочёл) написать этот код непосредственно на асме. Конечно придётся подучиться. Ну так ты сходи на васм и там с чувстом, с толком, с расстановкой объясни чё тебе надо. Там огонь-ребята и все, как на подбор- отличники. Помогут.

Добавлено через 2 минуты
И если ты сможешь нужный тебе код скропать (по хер каким способом), тогда ибудем обсуждать КАК ЕГО ВСТАВИТЬ в экзешник. Но, наверое, не здесь. Здесь, похоже, это не приветствуется.

Добавлено через 2 минуты
Цитата Сообщение от twista Посмотреть сообщение
Мне нужно найти в exe нике строку отправки голосования на сервер
ну я так понял, ты это умеешь делать? Нет? ТОгда займись исследованием программ. Зайди ко мне в личку, дам ссыль.
Yandex
Объявления
21.08.2010, 14:15     Перевод строки
Ответ Создать тему
Опции темы

Текущее время: 13:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru