Текущий архив: 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