Вверх ↑
Этот топик читают: Гость
Ответов: 4630
Рейтинг: 749
#1: 2016-02-26 14:02:15 ЛС | профиль | цитата
StrReverse v1.0

Перестановка символов строки в обратном порядке (реверс). Так, чтоб было.

StrReverse v1.0.zip

Редактировалось 1 раз(а), последний 2016-11-17 18:41:15
карма: 26

1
Голосовали:Shonyi
Ответов: 8923
Рейтинг: 823
#2: 2016-02-26 14:32:40 ЛС | профиль | цитата
Netspirit, скачал на всякий случай, чтоб было
карма: 19

0
Разработчик
Ответов: 26135
Рейтинг: 2126
#3: 2016-02-26 15:00:53 ЛС | профиль | цитата
Netspirit, а на кой черт там еще куча функций окромя StrReverse?
карма: 22

0
Ответов: 8923
Рейтинг: 823
#4: 2016-02-26 15:07:20 ЛС | профиль | цитата
nesco писал(а):
..на кой черт там еще куча функций..
А чтобы всё было!
карма: 19

0
Ответов: 4630
Рейтинг: 749
#5: 2016-02-26 15:16:05 ЛС | профиль | цитата
nesco писал(а):
а на кой черт там еще куча функций окромя StrReverse?
А у меня уже условный рефлекс: часто что-то требуется из соседних компонентов, и мне нужно к себе копипастить кучу кода, потому что из существующих модулей не экспортируется. Так я сразу делаю экспорт, если где-нибудь может понадобиться.
карма: 26

0
Ответов: 1343
Рейтинг: 31
#6: 2016-02-26 18:41:12 ЛС | профиль | цитата
Отличный компонент, не хватает реверса по группам символов, что бы скажем по 2 символа реверсить 09909897 > 97989009
карма: 2

0
Ответов: 4630
Рейтинг: 749
#7: 2016-02-26 18:49:03 ЛС | профиль | цитата
Хм, может быть. Ну, ты же знаешь решение (Str_Enum). А если речь идёт о строке в Hex - можешь сделать HexToStr, Reverse, потом StrToHex. Для DWord есть более оптимальные решения, чем в этом компоненте.
карма: 26

0
Ответов: 1343
Рейтинг: 31
#8: 2016-02-26 19:10:20 ЛС | профиль | цитата
Netspirit писал(а):
HexToStr, Reverse, потом StrToHex


не не не, это вообще помоему никогда не пригодится, я имею ввиду о простых байтах, скажем поинтеры надо реверсить после чтения, так как в памяти они пишутся наоборот, а использовать связку такую как то габаритно

code_36989.txt
карма: 2

0
файлы: 1code_36989.txt [823B] [586]
Ответов: 4630
Рейтинг: 749
#9: 2016-02-26 19:33:30 ЛС | профиль | цитата
Дарю: code_36990.txt

Rysik писал(а):
поинтеры надо реверсить после чтения
Читать надо правильно, тогда не нужно будет реверсировать.
карма: 26

1
файлы: 1code_36990.txt [1.1KB] [759]
Голосовали:Rysik
Ответов: 16884
Рейтинг: 1239
#10: 2016-02-26 22:43:54 ЛС | профиль | цитата
Netspirit,
#pas
function ReverseString(const Text: string): string;
var
I: Integer;
P: PChar;
begin
SetLength(Result, Length(Text));
P := PChar(Result);
for I := Length(Text) downto 1 do
begin
P^ := Text[I];
Inc(P);
end;
end;
Будет работать быстрее, да и код после компиляции короче (~ байт на 10 )
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 4698
Рейтинг: 426
#11: 2016-02-27 03:10:07 ЛС | профиль | цитата
Tad, почему бы тогда не сделать указатель на конец строки и также уменьшать его каждую итерацию, пока >= @text[1]? А еще лучше: почему бы не изменить функцию так, чтобы работать со входной строкой: делать попарный swap первого и последнего символа, двигаясь к середине?
карма: 10
0
Ответов: 16884
Рейтинг: 1239
#12: 2016-02-27 10:58:41 ЛС | профиль | цитата
Assasin, можно всё, но в 03:10 спать надо! ИМХО.
Assasin писал(а):
А еще лучше
Кому? А если дальше понадобится исходная строка?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1343
Рейтинг: 31
#13: 2016-02-27 13:23:51 ЛС | профиль | цитата
Netspirit писал(а):
Дарю: code_36990.txt


а без конверта hex-int и наоборот есть варианты?
карма: 2

0
Ответов: 4630
Рейтинг: 749
#14: 2016-02-27 14:45:47 ЛС | профиль | цитата
Перезалил ускоренную версию.

Rysik писал(а):
а без конверта hex-int и наоборот есть варианты?
Есть: использовать Hex, как полагается, только для ввода/отображения, а все операции производить с сырыми данными.
карма: 26

0
Разработчик
Ответов: 4698
Рейтинг: 426
#15: 2016-02-27 20:13:06 ЛС | профиль | цитата
Tad писал(а):
Кому? А если дальше понадобится исходная строка?

Это быстрее, чем выделять память под новую строку. А если потребуется исходная - копирование пущай делает вызывающий код, ему виднее, нужна потом исходная строка или нет.
Tad писал(а):
можно всё, но в 03:10 спать надо!

Что верно, то верно, как раз написал пост и спать пошел
карма: 10
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)