![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 04.06.2007
Сообщений: 2
|
![]()
Тема работа со строками.
Задание: Заменить группу на символ. Как мне обяснили это делать надо так: задаёшь строку из скольки то симолов, потом задаёшь начало и конец того куска строки который хочешь заменить(например строка абвгдеё и задаёшь от 3го сивола по 5) и заменяешь символом эот кусок ( должно остаться абNеё) Вот моя аська 194-242-983 если что пишите. З.Ы. За мной не заржавеет ![]() Заранее благодарен |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 16.04.2007
Сообщений: 298
|
![]()
Ну, поскольку Делфи может показать ассемблерный код, то надо написать функцию, возвращающую измененную строку, в которую передаешь исходную строку, номера символов, с какого по какой заменять и символ замены. Функция будет выглядеть (на Делфи) примерно так:
function MyReplaceSymbol(SouString: string; SouFrom, SouTo: integer; ReplaceSymbol: char): string; begin Result := copy(SouString, 1, SouFrom - 1) + ReplaceSymbol + copy(SouString, SouTo + 1, Length(SouString)); end; А дальше запускаешь прогу, ставишь точку останова на входе этой функции, подаешь ей что надо на вход, запускаешь функцию и на точке останова нажимаешь F12 и вот тебе ассемблерный код.
Не надо ничего усложнять. Все достаточно тривиально.
Последний раз редактировалось Shuraken; 04.06.2007 в 14:31. |
![]() |
![]() |
![]() |
#3 |
Регистрация: 04.06.2007
Сообщений: 2
|
![]()
Мне бы на асемблере всё это надо. А деньги бы я через веб мани перевёл или ещё как нибудь. Просто с программированием не дружу=)
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 16.04.2007
Сообщений: 298
|
![]()
lea eax, [ebp-$08];
push eax; mov ecx, ebx; dec ecx; mov edx, $00000001; mov eax, [ebp - $04]; call @LStrCopy; push dword ptr [ebp - $08]; lea eax, [ebp - $0c]; mov dl, [ebp + $0c]; call @LStrFromChar; push dword ptr [ebp - $0c]; lea eax, [ebp - $10]; push eax; mov eax, [ebp - $04]; call @LStrLen; mov ecx, eax; mov edx, [ebp + $10]; inc edx; mov eax, [ebp - $04]; call @LStrCopy; push dword ptr [ebp - $10]; mov eax, [ebp + $08]; mov edx, $00000003; call @LStrCatN; xor eax, eax; pop edx; pop ecx; pop ecx; mov fs:[eax], edx; push $00452014; lea eax, [ebp - $10]; mov edx, $00000004; call @LStrArrayClr; ret; jmp @HandleFinally; jmp -$15; это в асме. В Делфях так: function TForm1.MyReplaceStr(SouString: string; SouFrom, SouTo: integer; ReplaceSymbol: char): string; begin Result := copy(SouString, 1, SouFrom - 1) + ReplaceSymbol + copy(SouString, SouTo + 1, Length(SouString)); end; procedure TForm1.Button1Click(Sender: TObject); begin Edit2.Text := MyReplaceStr(Edit1.Text, 1, 3, 'a'); end;
Не надо ничего усложнять. Все достаточно тривиально.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите сделать одну фишку! | eldar | Работа с сетью в Delphi | 1 | 04.08.2008 14:34 |
Помогите, пожалуйста доделать одну задачу! | Максон | Помощь студентам | 2 | 25.06.2008 09:00 |
Нужно перевести задачу с паскаля на DELPHI | VDK23RUS | Помощь студентам | 8 | 16.06.2007 15:38 |