|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Переворот символов
Здравствуйте! В "Edit1" находится следующие крякозябры "7156664E" как можо перевернуть последовательность символов наоборот, тобиш что-бы получилось вот так "4E665671" ?
|
#2
|
||||
|
||||
Как-то так
Код:
L := Length(Edit1.Text); SetLength(S, L); for I := 1 to L do S[L-I+1] := Edit1.Text[i]; Edit1.Text := S; |
#3
|
||||
|
||||
Админ! Забавный баг. Я пишу Text[i], где I с большой буквы, а в результате вижу с маленькой. Это нормально или злобные вирусы запускают LowerCase? Тэг чтоль какой?
|
#4
|
||||
|
||||
Прочитай внимательнее порядок символов в результате в посте ТС.
jmp $ ; Happy End! The Cake Is A Lie. |
#5
|
||||
|
||||
Намёк на курсив? Так что, у итальянцев нет заглавных букв?
|
#6
|
||||
|
||||
Я вообще-то про алгоритм. ТС требуется:
Цитата:
Цитата:
jmp $ ; Happy End! The Cake Is A Lie. |
#7
|
||||
|
||||
Тормоз! Щаз!
|
#8
|
|||
|
|||
Ну что мешает сделать по доному из вариантов:
1. Разбить строку на массив по 2 символа в эдементе и переворачивать этот массив. 2. Сделать цикл с шагом 2 и обрабатывать сразу 2 символа. Второй вариант как-то так: Код:
var S, R : String; I : Integer; begin S := '7156664E'; If Length(S) mod 2 <> 0 Then Raise Exception.Create('Длинна не кратна 2'); R := ''; I := 1; While I < Length(S) Do Begin R := S[i] + S[I+1] + R; Inc(I,2); End; ShowMessage(R); end; |
#9
|
||||
|
||||
Цитата:
jmp $ ; Happy End! The Cake Is A Lie. |
#10
|
||||
|
||||
Да, нечётные всё портят. Строго с чётными:
Код:
L := Length(Edit1.Text); SetLength(S, L); for I := 1 to L do begin if I mod 2 = 0 then Continue; S[L-I] := Edit1.Text[i]; S[L-I+1] := Edit1.Text[I+1]; end; // for I := 1 to L shr 1 do Edit1.Text := S; Код:
L := Length(Edit1.Text); if L mod 2 <> 0 then begin Edit1.Text := Edit1.Text + #1; Inc(L); end; // if L mod 2 <> 0 then SetLength(S, L); for I := 1 to L do begin if I mod 2 = 0 then Continue; S[L-I] := Edit1.Text[i]; S[L-I+1] := Edit1.Text[I+1]; end; // for I := 1 to L shr 1 do if S[2] = #1 then Delete(S, 2, 1); Edit1.Text := S; Последний раз редактировалось BBBCat, 18.03.2013 в 19:55. |
#11
|
||||
|
||||
Цитата:
ЗЫЖ для непонятливых: не использовать. jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 18.03.2013 в 20:09. |
#12
|
||||
|
||||
А ещё есть такая функция Move...
|
#13
|
||||
|
||||
На производную от bcd формата сильно похоже.
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |