ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

30.03.2010, 23:13
|
|
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
Провел на форуме: 1819761
Репутация:
180
|
|
Сообщение от fenixelite
M_script_, просили в дельфи как бы......  ))
Не совсем - " желательно в дельфи" 
|
|
|

30.03.2010, 23:16
|
|
Участник форума
Регистрация: 07.02.2010
Сообщений: 189
Провел на форуме: 870084
Репутация:
79
|
|
Вот рабочий код :
Код:
s:=edt1.Text;
Insert('_',s,StrToInt(edt2.Text));
edt1.Text:=s;
Вкратце :
процедура Insert
1 параметр это то что вставляем.
2 - куда
3 - номер символа
|
|
|

30.03.2010, 23:32
|
|
Познающий
Регистрация: 07.06.2009
Сообщений: 30
Провел на форуме: 205687
Репутация:
0
|
|
Вот код для Delphi
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
t, s, m: String;
begin
t:=Edit1.Text;
s:=Edit2.Text;
m:=Edit3.Text;
Insert(s,t,StrToInt(m));
Edit4.Text:=t;
end;
end.
где:
t-текст
s-символ
m-в каком месте
Последний раз редактировалось Ss[x]dD; 30.03.2010 в 23:36..
|
|
|

30.03.2010, 23:40
|
|
Познающий
Регистрация: 07.06.2009
Сообщений: 30
Провел на форуме: 205687
Репутация:
0
|
|
Теперь вопрос №2:
выше представлен код, в котором только 1 раз можно вставить символ в нужное место, а если предположим, что на месте 4, 6, 7 символа исходного текста вставить допустим тот же "_" символ
|
|
|

31.03.2010, 00:55
|
|
Участник форума
Регистрация: 21.02.2009
Сообщений: 228
Провел на форуме: 2175726
Репутация:
368
|
|
тебе вроде написали функцию та O_o
Insert('_',string,4);
Insert('_',string,6);
Insert('_',string,7);
---------
или тебе заменить нужно?
string[4]:='_';
string[6]:='_';
string[7]:='_';
Последний раз редактировалось edge911; 31.03.2010 в 00:59..
|
|
|

31.03.2010, 01:19
|
|
Участник форума
Регистрация: 30.03.2007
Сообщений: 121
Провел на форуме: 188563
Репутация:
52
|
|
в Edit2 вводить цифры через запятую.
PHP код:
var
j,i:integer;
m,s:string;
Paste:array[1..255] of integer;
begin
s:=Edit1.Text; { запоминаем текст}
m:=Edit2.text; {запоминает цифры}
m:=m+','; { добавляем , для парсинга}
for i:=1 to 255 do
begin
Paste[i]:=-1;
{заполняем массив -1}
if length(m)>0 then
{ если длина строки с цифрами > 0}
begin
Paste[i]:=strtoint(copy(m,1,pos(',',m)-1));
{ сохраняем значение}
delete(m,1,pos(',',m));
{удаляем, что сохранили }
end;
end;
j:=0; // Счетчик, который фиксирует баг с заменой
for i:=1 to 255 do
begin
if Paste[i]=-1 then break;
{если число в массиве -1 прекращаем цикл}
insert('_',S,Paste[i]+j);
{вставляем текст}
inc(j);
{увеличивываем позицию}
end;
Edit3.Text:=s;
{выводим результат}
Если с конца надо
замени:
Код:
insert('_',S,Paste[i]+j);
на
Код:
insert('_',S,length(s)-Paste[i]+j);
Последний раз редактировалось JnK; 31.03.2010 в 01:29..
Причина: Добавил комментарии, исправил недочет
|
|
|

31.03.2010, 01:42
|
|
Участник форума
Регистрация: 30.03.2007
Сообщений: 121
Провел на форуме: 188563
Репутация:
52
|
|
Что бы не заморачиваться, вот без массива.
Код:
procedure TForm1.Button1Click(Sender: TObject);
const
Delimiter=',';
Replacement='_';
var
I:integer;
Num,Str:string;
begin
Str:=edit1.text;
Num:=edit2.text+Delimiter;
I:=0; {новая позиция, с уже добавлеными символами}
While length(Num)>0 do
begin
insert(Replacement,Str,strtoint(copy(Num,1,pos(Delimiter,Num)-1))+I);
delete(Num,1,pos(Delimiter,Num));
inc(I);
end;
edit1.Text:=Str;
end;
Последний раз редактировалось JnK; 31.03.2010 в 01:50..
|
|
|

31.03.2010, 07:45
|
|
Познающий
Регистрация: 07.06.2009
Сообщений: 30
Провел на форуме: 205687
Репутация:
0
|
|
PHP код:
Спасибо всем за ответы, выручили :)
+++ нажал ;)
Последний раз редактировалось Ss[x]dD; 31.03.2010 в 07:48..
|
|
|

04.04.2010, 18:39
|
|
Познающий
Регистрация: 07.06.2009
Сообщений: 30
Провел на форуме: 205687
Репутация:
0
|
|
Ребята, вот еще вопросик, как сделать чтобы не в начале перемещалось, а в конце?
|
|
|

04.04.2010, 18:42
|
|
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
Провел на форуме: 1819761
Репутация:
180
|
|
Что значит "не в начале, а в конце"?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|