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

Вниз

Преобразование строки в число и обратно   Найти похожие ветки 

 
Simpson ©   (2008-08-12 17:06) [40]

ord()
chr()
И пусть Маша любит кого угодно, криптография кстати не просто так, с наскоку не напишеш алгоритм, хотя бы представление букав в памяти полезно помнить.


 
McSimm ©   (2008-08-12 17:25) [41]


> Simpson ©   (12.08.08 17:06) [40]

И чему равно число для приведенной строки про Машу?


 
alien1769 ©   (2008-08-12 18:47) [42]

ci:=137 -> прописью сто тридцать семь
возможно написание обратной функции
st:="сто тридцать семь" -> si:=137;

возможно это автор имел ввиду
?


 
b z   (2008-08-12 18:52) [43]


> возможно это автор имел ввиду
Автор уж давно сгинул в лету. :)


 
Renegat ©   (2008-08-12 19:54) [44]

Коллективное сознание тут подумало-подумало и сказало:

А что если топикстартеру тупо нужно привести указатель на первый байт строки к DWORD?


 
MsGuns ©   (2008-08-12 20:15) [45]

>b z   (12.08.08 18:52) [43]
>Автор уж давно сгинул в лету. :)

Пошел к Маше ?


 
isasa ©   (2008-08-12 21:24) [46]

"Меня терзают смутные сомнения" (с) , что автор имеет ввиду CRC.


 
Sergey Masloff   (2008-08-12 22:14) [47]

isasa ©   (12.08.08 21:24) [46]
И что тогда понимается под "обратно"? ;-)


 
Пробегал2....   (2008-08-13 00:14) [48]

вот вам делать нечего в телепатов серьезно играть. Дядьки, которые пишут корпоративные системы в миллионы долларов решили подсесть на развод школьника ;)


 
brother ©   (2008-08-14 04:40) [49]

имхо, автору нужно было, сумма прописью... впрочем, уже не нужно )


 
Anatoly Podgoretsky ©   (2008-08-14 09:36) [50]

Думаешь уже другую работу ищет?


 
brother ©   (2008-08-14 09:50) [51]

> Думаешь уже другую работу ищет?

раз молчит=> инета нет)=> нашел гы-гы


 
Vlad Oshin ©   (2008-08-14 13:06) [52]

Ладно, начальника пока нет..
обратная функция к
//----------------- Copyright (c) 1999 by Константин Егоров
//----------------- mailto: egor@vladi.elektra.ru
// Function SumNumToFull(Number:real):string;

Взятой с сайта Blackmana  http://articles.org.ru/myfaq/10042003.php


function FullToSumNum(sIn:string):string;
 procedure WordToList(sl: TStringList; var sIn: string; iK: Integer);
 var
   s: string;
 begin
   while length(sIN) > 0 do
   begin
     iK := pos(" ", sIN);
     if iK > 0 then
     begin
       s := copy(sIN, 1, iK - 1);
       sl.Add(s);
       delete(sIN, 1, iK);
     end
     else
     begin
       sl.Add(sIN);
       sIN := "";
     end;
   end;
 end;

 procedure FracOfSum(iK: Integer; sIn: string; iK1: Integer; var sFrac: string);
 begin
   sFrac := copy(sIN, iK, iK1);
   delete(sFrac, 1, pos(" ", sFrac));
   delete(sFrac, pos(" ", sFrac), Length(sFrac));
   if strtoint(sFrac) > 0
    then if sFrac[2] = "0"
          then sFrac := "," + sFrac[1]
          else sFrac := "," + sFrac
    else sFrac := "";
 end;

 procedure Hund(iK1: Integer; var sl: TStringList);
 begin
   if sl[iK1] = "cто"       then  sl[iK1] := "100";
   if sl[iK1] = "двести"    then  sl[iK1] := "200";
   if sl[iK1] = "триста"    then  sl[iK1] := "300";
   if sl[iK1] = "четыреста" then  sl[iK1] := "400";
   if sl[iK1] = "пятьсот"   then  sl[iK1] := "500";
   if sl[iK1] = "шестьсот"  then  sl[iK1] := "600";
   if sl[iK1] = "семьсот"   then  sl[iK1] := "700";
   if sl[iK1] = "восемьсот" then  sl[iK1] := "800";
   if sl[iK1] = "девятьсот" then  sl[iK1] := "900";
 end;
 
 procedure Tens(iK1: Integer; var sl: TStringList);
 begin
   if sl[iK1] = "десять"      then  sl[iK1] := "10";
   if sl[iK1] = "двадцать"    then  sl[iK1] := "20";
   if sl[iK1] = "тридцать"    then  sl[iK1] := "30";
   if sl[iK1] = "сорок"       then  sl[iK1] := "40";
   if sl[iK1] = "пятьдесят"   then  sl[iK1] := "50";
   if sl[iK1] = "шестьдесят"  then  sl[iK1] := "60";
   if sl[iK1] = "семьдесят"   then  sl[iK1] := "70";
   if sl[iK1] = "восемьдесят" then  sl[iK1] := "80";
   if sl[iK1] = "девяносто"   then  sl[iK1] := "90";
 end;

 procedure Ones(iK1: Integer; var sl: TStringList);
 begin
   if (sl[iK1] = "один") or (sl[iK1] = "одна") then sl[iK1] := "1";
   if (sl[iK1] = "два") or (sl[iK1] = "две") then   sl[iK1] := "2";
   if sl[iK1] = "три"    then  sl[iK1] := "3";
   if sl[iK1] = "четыре" then  sl[iK1] := "4";
   if sl[iK1] = "пять"   then  sl[iK1] := "5";
   if sl[iK1] = "шесть"  then  sl[iK1] := "6";
   if sl[iK1] = "семь"   then  sl[iK1] := "7";
   if sl[iK1] = "восемь" then  sl[iK1] := "8";
   if sl[iK1] = "девять" then  sl[iK1] := "9";
 end;

 procedure Pridurki(iK1: Integer; var sl: TStringList);
 begin
   if sl[iK1] = "одиннадцать"  then  sl[iK1] := "11";
   if sl[iK1] = "двенадцать"   then  sl[iK1] := "12";
   if sl[iK1] = "тринадцать"   then  sl[iK1] := "13";
   if sl[iK1] = "четырнадцать" then  sl[iK1] := "14";
   if sl[iK1] = "пятнадцать"   then  sl[iK1] := "15";
   if sl[iK1] = "шестнадцать"  then  sl[iK1] := "16";
   if sl[iK1] = "семнадцать"   then  sl[iK1] := "17";
   if sl[iK1] = "восемнадцать" then  sl[iK1] := "18";
   if sl[iK1] = "девятнадцать" then  sl[iK1] := "19";
 end;

 procedure Mult(var sl: TStringList; iK1: Integer);
 begin
   if
     (sl[iK1] = "тысяч") or (sl[iK1] = "тысяча") or (sl[iK1] = "тысячи") or
     (sl[iK1] = "миллионов") or (sl[iK1] = "миллиона") or (sl[iK1] = "миллион")
   then
     sl[iK1] := "Z";
 end;

var
 sFrac  : string;
 iInt   : integer;
 iK,iK1 : integer;
 sl     : tstringlist;
begin
 iK:=pos("рубл",sIN);
 iK1:=length(sIN);
 FracOfSum(iK, sIn, iK1, sFrac);
 delete(sIN,iK-1,iK1);
 sl:=tStringList.Create;
 WordToList(sl, sIn, iK);
 for iK1 := SL.Count - 1 downto 0 do
 begin
   Hund(iK1, sl);
   Tens(iK1, sl);
   Ones(iK1, sl);
   Pridurki(iK1, sl);
   Mult(sl, iK1);
 end;
 iInt:=0;
 for iK1 := 0 to SL.Count - 1 do
 begin
   if sl[iK1]<>"Z"
    then iInt:=iInt+strtoint(sl[iK1])
    else iInt:=iInt*1000;
 end;
 freeAndNil(sl);
 Result:=inttostr(iInt)+sFrac;
end;


 
stas ©   (2008-08-14 13:13) [53]

brother ©   (14.08.08 04:40) [49]
Тогда при чем тут Вася с машей?


 
Anatoly Podgoretsky ©   (2008-08-14 15:55) [54]

Не причем, а геде и чито.


 
Simpson ©   (2008-08-15 08:22) [55]

Автор тебе не это было нужно?

procedure TForm1.Button1Click(Sender: TObject);
var
 count:integer;
begin
Edit2.Text := "";
for count := 1 to Length(Edit1.Text) do
  Edit2.Text := Edit2.Text + IntToStr(ord(Edit1.Text[count]))+" ";
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 count:integer;
 temp:String;
begin
Edit3.Text := "";
temp := "";
for count := 1 to Length(Edit2.Text) do
  begin
    if(Edit2.Text[count] <> " ")then
      temp := temp + Edit2.Text[count]
      else
        begin
          Edit3.Text := Edit3.Text + chr(StrToInt(temp));
          temp :="";
        end;
  end;
end;


 
AlexDan ©   (2008-08-15 21:29) [56]

> Simpson ©   (15.08.08 08:22) [55]
Вот-вот, видимо речь идёт о том, чтобы рассматривать строку как число (в смысле как массив, поэлементно).
chA:string;
chA:= Edit1.text;

Ну а операции с числом (т.е. строкой) программно (от руки..) или с помощью модулей..

> ganda   (12.08.08 09:56)
> Тут как то кто то выставлял эту функцию я её ни куда не
> записал!
Вроде даже я когда-то такую ветку делал..


 
Правильный$Вася   (2008-08-16 16:35) [57]


> строка  "Вася любил машу" эту строку перевести в число и наоборот

враки
я никакой маши не любил
а наоборот - хз
т.о. прямое преобразование дает False (0)
а обратное - NULL


 
Simpson ©   (2008-08-17 13:38) [58]

Правильный$Вася   (16.08.08 16:35) [57]
Может просто запямятавал? В ветке несколько раз утверждается, что любовь таки была, попробуй вспомнить.


 
palva ©   (2008-08-17 22:27) [59]

> Правильный$Вася   (16.08.08 16:35) [57]
Может быть, любил, но неправильно?


 
ЛшдлуттнСфе   (2008-08-18 00:14) [60]

Надо выслушать мнение Маши.



Страницы: 1 2 вся ветка

Текущий архив: 2008.10.05;
Скачать: CL | DM;

Наверх




Память: 0.59 MB
Время: 0.016 c
11-1194225257
nsvi
2007-11-05 04:14
2008.10.05
Куда пропал OnEndEditLVItem?


3-1207533571
yus
2008-04-07 05:59
2008.10.05
Изменить программно парвметры псевдонима БД


4-1197398579
Jolik
2007-12-11 21:42
2008.10.05
Как сделать свои подсказки...


9-1171785599
Sonio
2007-02-18 10:59
2008.10.05
Будущий геймдев!


2-1219309785
LCF
2008-08-21 13:09
2008.10.05
Ручная отрисовка DBGrid