Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1172334357
Stan
2007-02-24 19:25
2007.03.18
Выравнивание данных


2-1171916131
igx
2007-02-19 23:15
2007.03.18
dxDBGrid бенд над бендами


15-1172433448
RASkov
2007-02-25 22:57
2007.03.18
Behold TV


3-1166422900
Tex
2006-12-18 09:21
2007.03.18
Изменение цвета текущей строки DBGrid a


1-1169658454
Ламерюга
2007-01-24 20:07
2007.03.18
Можно ли получить TForm из Handle





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