Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
43 / 1 / 1
Регистрация: 05.01.2014
Сообщений: 337

Преобразовать String в char*

18.04.2014, 08:54. Показов 3469. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Подскажите пожалуйста, как можно преобразовать тип char? А именно:
Есть строка кода char* X="Текст в виде пути на диск";

Необходимо написать код, где "Текст в виде пути на диск" вводится на форме в OnChange Edit1.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.04.2014, 08:54
Ответы с готовыми решениями:

Не удаётся преобразовать string в char
Здравствуйте. Пользуюсь C++Builder. Создана форма с тремя TEdit + кнопка. Задача, при вводе в TEdit1 и TEdit2 числовых значений,...

String в char
#include <cstring> int n, flag; FILE *f; char s="PC.dat"; struct PC{ int Num; char tip; int taktch; int OZU; int...

Из char* в String
Кто знает способ как из char* сделать String??? есть некая функция char *MoneyToStr(int m); она создает строку (выделяет под нее...

19
 Аватар для demon_7
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
18.04.2014, 09:11
А может просто сделать как тут?
Начальный текст в edit
0
43 / 1 / 1
Регистрация: 05.01.2014
Сообщений: 337
18.04.2014, 09:17  [ТС]
Что то тут не совсем понятно. Где там char?
0
 Аватар для demon_7
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
18.04.2014, 09:23
Вот
C++
1
name.c_str()
0
43 / 1 / 1
Регистрация: 05.01.2014
Сообщений: 337
18.04.2014, 09:38  [ТС]
Немного понял, а переменную X где там вставить?
0
 Аватар для demon_7
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
18.04.2014, 09:40
Цитата Сообщение от Pir12345 Посмотреть сообщение
Немного понял, а переменную X где там вставить?
Там где нужен Char
name.c_str() это своего рода Ваш X.
0
43 / 1 / 1
Регистрация: 05.01.2014
Сообщений: 337
18.04.2014, 11:52  [ТС]
Подставил, компилируется, но неработает.
Суть такая. Есть кусок кода, который запускает программу по указанному пути из под другого пользователя:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char* m_pwdt="xxxxxxx";
    char* m_lgnt="xxxxxxx";
    char m_pwd[20]="";
    char m_lgn[20]="";
    char m_st[3000]="";
        char* m_t3;
        String name = L"";
    SendMessage(Edit1->Handle, 0x1501, 0, LPARAM(m_t3));
        //char* m_t3="/domain:XXXXXX/command:\"\\\\D\\Setup.exe\" /runpath:c:\\";
    char* m_t2=" /password:";
    char* m_t1="\\\\M\\lsrunas /user:";
 
    strcpy(m_pwd,CodeDecodePaswd(m_pwdt));
    strcpy(m_lgn,CodeDecodePaswd(m_lgnt));
 
    strcpy(m_st, m_t1);
    strcat(m_st, m_lgn);
    strcat(m_st, m_t2);
    strcat(m_st, m_pwd);
    strcat(m_st, m_t3);
 
        system(m_st);
}
Он отрабатывается, но если переделать так, чтобы m_t3 вводилось в Edit1 а не писалось в коде, то вышепоказанный код компилируется, но при введении в поле Edit1 и нажатии на Button1- происходит прерывание в виде Project1 exeption.... на шаге strcat(m_st, m_t3);
Как это исправить?
0
 Аватар для demon_7
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
18.04.2014, 11:59
Так еще раз, что изначально надо сделать? как я понял, тебе надо чтобы в Edit был некий текст "Введите путь".
Когда Edit получил фокус, этот текст исчез.
Собственно ссылка моя с примером именно этой реализации.
Опиши конкретнее что хочешь сделать.
0
43 / 1 / 1
Регистрация: 05.01.2014
Сообщений: 337
18.04.2014, 12:04  [ТС]
Если в приведенном коде закомментировать 8,9,10(то что вы давали) строчку и расскоментировать 11, то программа начинает работает. Но это все в коде, без VCL элементов. А мне нужно, чтобы с 11 строчки путь, указанный там(который меняется в зависимости от нужд), вводился в поле Edit1 и по нажатию кнопки- программа запускалась.
0
 Аватар для demon_7
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
18.04.2014, 12:10
так что ли?
C++
1
2
char* m_t3="/domain:XXXXXX/command:\"\\\\D\\Setup.exe\" /runpath:c:\\";
Edit1->Text=m_t3;
или вы в Edit1 пишите текст и передаете его переменной?
C++
1
char* m_t3=Edit1->Text.c_str();
0
43 / 1 / 1
Регистрация: 05.01.2014
Сообщений: 337
18.04.2014, 12:16  [ТС]
Почти так, только /domain:XXXXXX/command:\"\\\\D\\Setup.exe\" /runpath:c:\\ - это путь к программе, которую надо запустить по другой учетной записью, заложенной в программе.
То есть, если исходный Setup.exe будет лежать по другому пути, то нужно этот путь поменять, так вот я хочу его менять в Edit1 а не в коде программы.
0
 Аватар для demon_7
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
18.04.2014, 12:21
ну я ж уже показал как, пробуйте...
C++
1
char* m_t3=Edit1->Text.c_str();
0
43 / 1 / 1
Регистрация: 05.01.2014
Сообщений: 337
18.04.2014, 14:16  [ТС]
Запускается проект, но не запускается программа при введении данных в Edit1
0
 Аватар для demon_7
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
18.04.2014, 14:21
покажите код где вы передаете путь который находиться в m_t3 на исполнение (запуск программы).
Либо Выведите переменную m_t3 в Label или Memo и посмотрите соответствует ли введенные данные, тем что хранятся в переменной.
0
43 / 1 / 1
Регистрация: 05.01.2014
Сообщений: 337
18.04.2014, 14:28  [ТС]
исполнение m_t3 находится в строке system(m_st) в обработчике OnClick Button1. Сама программа работает с использованием виндовой lsrunas расположенной по заданному пути

Введенные данные соответствуют, потому что их я копирую из закомментированного пути в коде
0
 Аватар для demon_7
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
18.04.2014, 14:59
я понял проблему, при присваивании m_t3=Edit1->Text.c_str() в m_t3 не попадает последний символ)
ща запилим костылем)

Добавлено через 27 минут
У меня так корректно, не понятно по чему на прямую с Edit его смущает слеш.
C++
1
2
3
char* m_t3;
AnsiString s=Edit1->Text;
m_t3=s.c_str();
Вообще что смущает работать со AnsiString и String ???
0
43 / 1 / 1
Регистрация: 05.01.2014
Сообщений: 337
18.04.2014, 15:06  [ТС]
Странно, у меня тоже самое...при нажатии на Button1 кратковременно появляется cmd, а программа на которую идет путь не запускается.
А вы как проверяете у себя?
0
 Аватар для demon_7
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
18.04.2014, 15:10
просто выводил значение Edit1->Text и значение переменной в поле Memo и сравнивал.
0
43 / 1 / 1
Регистрация: 05.01.2014
Сообщений: 337
18.04.2014, 15:24  [ТС]
А как вывести и сравнить? покажите код?я тоже попробую сравнить
0
 Аватар для demon_7
260 / 192 / 60
Регистрация: 12.05.2013
Сообщений: 857
18.04.2014, 15:26
..............
C++
1
2
3
4
5
char* m_t3;
Memo1->Lines->Add(Edit1->Text);
AnsiString s=Edit1->Text;
m_t3=s.c_str();
Memo1->Lines->Add(m_t3);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.04.2014, 15:26
Помогаю со студенческими работами здесь

Конвертация String и char
Всем добро!:senor: Проблема с конвертацией String и char, а именно вот таким способом я получаю индекс диска например диск "F"...

String to unsigned char[]
Всем привет. Что-то никак не могу придумать как преобразовать значения из Edit'ов в массив unsigned char. Задача такая - есть 8 Edit'ов и...

Char* to string и IntToHex
Всем доброго дня! Столкнулся с интересной проблемой. есть char* надо преобразовать в string и вывести hex кодами делаю это так ...

Перевести string to char
Вот есть некая переменная char a; в нее нужно забить то что я ввел, например в Edit1. Как єто сделать??

'C': String (HEX)->CHAR[]
Запутался в 2х соснах))) Ввожу с клавиатуры строку через gets(), строка представляет собой 6 байтовый HEX, ввожу 12 символов. 1 hex =...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru