Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.18;
Скачать: CL | DM;

Вниз

преобразовывать символы в буквы   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.038 c
2-1172082442
Novichok_New
2007-02-21 21:27
2007.03.18
Свой "Планировщик задач"


15-1172081063
Ketmar
2007-02-21 21:04
2007.03.18
*nix -- удавить...


1-1169483449
Dmitry_177
2007-01-22 19:30
2007.03.18
Непонятные ошибки при компиляции


15-1171805680
Tirael
2007-02-18 16:34
2007.03.18
занят другим приложением


2-1172222031
Cara
2007-02-23 12:13
2007.03.18
Time в Caption !





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский