![]() |
Передвинуть символа в строке
Кто нибудь сталкивался с таким:
Вобщем допустим в едит1 записано - 1101011110101110. Цель - в едит2 вводим допустим число 5 и у нас в едит3 должно получиться - 110101111010_1110 П.С. вместо 5-го символа должен вставиться любой символ/буква, главное чтобы отделить П.П.С. чуть не забыл, желательно в дельфи ) |
Сейчас накатаю 5 мин)
|
Если правильно понял, то вот :
insert('_',edit1.Text,strtoint(Edit2.Text)); |
AnsiString s = Edit1->Text;
int i = Edit2->Text.ToInt(); Edit3->Text = s.Insert("_", s.Length() - i + 2); |
insert(pos('_')+8); примерно так
|
M_script_, просили в дельфи как бы...... :)))
|
Интерпретирую M_script
Цитата:
|
На паскале так:
Код:
s:=11111 |
Berman, сделал как ты сказал
var s: String; var i: Integer begin edit1.text := strtoint(edit2.text); edit3.text := s.Insert("_", s.Length() - i + 2); что та ошибку выдает, могешь в кратце описать что делает что? ) |
Сделай как сказал CyberHunter, он определил.
|
Цитата:
|
Вот рабочий код :
Код:
процедура Insert 1 параметр это то что вставляем. 2 - куда 3 - номер символа |
Вот код для Delphi
Код:
procedure TForm1.Button1Click(Sender: TObject);t-текст s-символ m-в каком месте |
Теперь вопрос №2:
выше представлен код, в котором только 1 раз можно вставить символ в нужное место, а если предположим, что на месте 4, 6, 7 символа исходного текста вставить допустим тот же "_" символ |
тебе вроде написали функцию та O_o
Insert('_',string,4); Insert('_',string,6); Insert('_',string,7); --------- или тебе заменить нужно? string[4]:='_'; string[6]:='_'; string[7]:='_'; |
в Edit2 вводить цифры через запятую.
PHP код:
замени: Код:
insert('_',S,Paste[i]+j);Код:
insert('_',S,length(s)-Paste[i]+j); |
Что бы не заморачиваться, вот без массива.
Код:
procedure TForm1.Button1Click(Sender: TObject); |
PHP код:
|
Ребята, вот еще вопросик, как сделать чтобы не в начале перемещалось, а в конце?
|
Что значит "не в начале, а в конце"?
|
ну т.е. если пользоваться кодом #17 то сдвиг идет слева-направо (с начала строки в конец строки) вотъ хотелось бы чтобы наоборот все осуществлялось.
|
Писал же:
Вместо: insert('_',S,Paste[i]+j); использовать: insert('_',S,length(s)-Paste[i]+j); Берем длину сообщения: length(s) Вычитаем из нее нужное число: Paste[i] добавляем сдвиг : j (это что бы не учитывались ранее вставленые _ ) Вот исправленый пример во 2 варианте: PHP код:
|
| Время: 05:25 |