Форум: "Начинающим";
Текущий архив: 2007.03.18;
Скачать: [xml.tar.bz2];
Внизпреобразовывать символы в буквы Найти похожие ветки
← →
Name (2007-02-25 14:11) [0]Подскажите что я делаю неправильно. Функция должна преобразовывать символы в буквы.Спасибо
function Shif(const Str: string): string;
const
RArrayL = "#176#174#153";
RArrayU = "#34#131#172";
colChar = 3;
arr: array[1..2, 1..ColChar] of string =
(("a","b","c"),
("A","B","C"));
var
i: Integer;
LenS: Integer;
p: integer;
d: byte;
begin
result := "";
LenS := length(str);
for i := 1 to lenS do
begin
d := 1;
p := pos(str[i], RArrayL);
if p = 0 then
begin
p := pos(str[i], RArrayU);
d := 2
end;
if p <> 0 then
result := result + arr[d, p]
else
result := result + str[i];
end;end;
← →
Zeqfreed © (2007-02-25 15:03) [1]Да практически все :)
Опиши, что ты делаешь в каждой строчке.
← →
Name (2007-02-25 15:14) [2]Это делаю не я(т.е. код писан не мною). В общем заменяю символы RArrayL,RArrayU на буквы a,b,c , A,B,C
← →
Palladin © (2007-02-25 15:17) [3]если это делаешь не ты тогда зачем тебе это нужно?
← →
Zeqfreed © (2007-02-25 15:21) [4]Тогда я не буду распинаться и промолчу, а Кетмар придет и пошлет за метлой :)
← →
Name (2007-02-25 15:36) [5]Понятно. Спасибо
← →
Anatoly Podgoretsky © (2007-02-25 16:32) [6]Символ синоним слова буква!
← →
Name (2007-02-25 19:22) [7]Вызываю функцию таким образом, но не работает правильно
procedure TForm1.Button6Click(Sender: TObject);
var
i: integer;
begin
Memo3.Lines.Clear;
for i:=0 to Memo2.Lines.Count-1 do
Memo3.Lines.Add(Shif(Memo2.Lines.Strings[i]));
end;
← →
Virgo_Style © (2007-02-25 19:32) [8]Name (25.02.07 19:22) [7]
К сожалению, неверно написанная функция не будет работать правильно, как ее не вызывай.
Замечу также, что неизвестно, какая работа функции может считаться правильной.
По исходному вопросу -
> Подскажите что я делаю неправильно
- полагаю, что используешь чужой код (предположительно неверный), не разбираясь в нем.
← →
Anatoly Podgoretsky © (2007-02-25 19:46) [9]> Name (25.02.2007 19:22:07) [7]
> но не работает правильно
Это не мешало бы расшифровать.
← →
Palladin © (2007-02-25 20:10) [10]
> Это не мешало бы расшифровать.
дык, "она делает не то, что я хочу" :)
← →
Name (2007-02-25 20:38) [11]
> Это не мешало бы расшифровать
Функция не заменяет символы(в данном случае 6 штук ) на буквы. Каким образом можно это исправить в коде?
← →
Плохиш © (2007-02-25 21:46) [12]Странно, я всегда считал как и в [6], что "символ" и "буква" - это синонимы...
← →
Virgo_Style © (2007-02-25 21:51) [13]кавычки в определениях констант imto (*) лишние.
(*) t = Telepator
← →
RASkov (2007-02-25 21:55) [14]> [11] Name (25.02.07 20:38)
Попробуй так: (если я конечно правильно понял вопрос)function ReplStr(const Str: String; const SArr1, SArr2: array of Char): String;
var N, J: Integer;
begin
Result:=Str;
if (Length(SArr1)=0) or (Length(Sarr2)=0) or (Length(SArr1)<>Length(SArr2)) then Exit;
for N:= 1 to Length(Result) do
for J:= 0 to Length(SArr1)-1 do if ORD(Result[N])=ORD(SArr1[J]) then Result[N]:=SArr2[J];
end;
procedure TForm1.Button6Click(Sender: TObject);
const S1: array [0..5] of Char = #176#174#153#34#131#172;
S2: array [0..5] of Char = "abcABC";
var N: Integer;
begin
Memo3.Clear;
for N := 0 to Memo2.Lines.Count-1 do Memo3.Lines.Add(ReplStr(Memo2.Lines[N], S1, S2));
end;
← →
Name (2007-02-25 22:55) [15]
> RASkov (25.02.07 21:55) [14]
Спасибо огромное!
← →
RASkov (2007-02-25 23:23) [16]> [15] Name (25.02.07 22:55)
Замени...
if ORD(Result[N])=ORD(SArr1[J]) then Result[N]:=SArr2[J];
...вот на это
if ORD(Result[N])=ORD(SArr1[J]) then begin Result[N]:=SArr2[J]; Continue; end;
Все немного побыстрее будет(не всегда).... думаю поймешь почему.
← →
RASkov (2007-02-25 23:31) [17]> [6] Anatoly Podgoretsky © (25.02.07 16:32)
> [12] Плохиш © (25.02.07 21:46)
В контексте вопроса автора это "разные" вещи - ™,® -символы, нужно заменить на буквы - а,b,c :)
Чел выразился не совсем верно, ну или совсем неверно :)
> Name
Может надо было ченить так:
- "Функция должна преобразовывать "символы" в "буквы"."
← →
Name (2007-02-26 12:35) [18]
> RASkov
Еще раз спасибо!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.03.18;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.047 c