Главная страница
    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.042 c
2-1172087049
vasIZmax
2007-02-21 22:44
2007.03.18
Ввязался...


1-1169464262
Степан
2007-01-22 14:11
2007.03.18
Запись в автозапуск


2-1172649090
evgenij_
2007-02-28 10:51
2007.03.18
файл ресурса


3-1166333938
Новичек
2006-12-17 08:38
2007.03.18
Получение уведомлений от SQL-сервера об изменениях.


15-1172354726
Kav
2007-02-25 01:05
2007.03.18
Сосмеху чуть не умер





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский