Текущий архив: 2008.10.05;
Скачать: CL | DM;
Вниз
Преобразование строки в число и обратно Найти похожие ветки
← →
ganda (2008-08-12 09:56) [0]не могу найти решение данной задачи
← →
oldman © (2008-08-12 10:05) [1]Раздел "строковые функции" в любой книге читал?
Или Help.
Ладно.
Почитай для начала про inttostr, далее нажми "См.также"
← →
ganda (2008-08-12 10:07) [2]Во не успел у точнить что бы не пинали к этим функциям! Про них я в курсе
← →
McSimm © (2008-08-12 10:11) [3]самое время уточнить
← →
oldman © (2008-08-12 10:11) [4]В чем тогда проблема?
Поподробнее, плиз...
← →
McSimm © (2008-08-12 10:12) [5]решение какой задачи вы не можете найти
← →
oldman © (2008-08-12 10:12) [6]
> McSimm © (12.08.08 10:12) [5]
Видимо "как написать сумму прописью"...
← →
turbouser © (2008-08-12 10:15) [7]
> ganda (12.08.08 10:07) [2]
речь об1001000100000000 = стотыщмильенов
?
тогда не число в строку, а число прописью
← →
ganda (2008-08-12 10:31) [8]к примеру
строка "Вася любил машу" эту строку перевести в число и наоборот
Тут как то кто то выставлял эту функцию я её ни куда не записал!
← →
McSimm © (2008-08-12 10:33) [9]Length()
← →
McSimm © (2008-08-12 10:34) [10]наоборот не получится :)
← →
Рамиль © (2008-08-12 10:36) [11]
> строка "Вася любил машу" эту строку перевести в число и
> наоборот
И чего должно получится?
← →
oldman © (2008-08-12 10:38) [12]
> Рамиль © (12.08.08 10:36) [11]
>
> > строка "Вася любил машу" эту строку перевести в число
> и
> > наоборот
>
> И чего должно получится?
Видимо, число.
Выражающее, как вася любил машу.
← →
ganda (2008-08-12 10:39) [13]вот засада а алгоритм есть такой преобразователя из строки в число
← →
b z (2008-08-12 10:43) [14]Предполагаю что речь про Ord() и обратно. :)
← →
grisme © (2008-08-12 10:56) [15]может, имелась ввиду реализация собственной альтернативы? )
← →
Anatoly Podgoretsky © (2008-08-12 10:58) [16]
> вася любил машу.
Вася любил Машу по разному и везде.
← →
ganda (2008-08-12 11:35) [17]уважаемый модератор закройте тему! А то тут ужас что творится! Помощи нуль а пошлости скока хочешь
← →
Anatoly Podgoretsky © (2008-08-12 11:39) [18]Терпи казак, атаманом станешь.
← →
Palladin © (2008-08-12 11:41) [19]
> ganda (12.08.08 11:35) [17]
И ты! автор этого ужаса... терпи теперь )
← →
oldman © (2008-08-12 11:49) [20]
> ganda (12.08.08 09:56)
А что (с твоей точки зрения) должно получиться после преобразования?
Ну хотя-бы в общих чертах.
← →
DiamondShark © (2008-08-12 11:52) [21]
> ganda (12.08.08 10:31) [8]
> к примерустрока "Вася любил машу" эту строку перевести
> в число и наоборот
function StrokaVChislo(s: string): integer;
begin
if s = "Вася любил машу" then Result := 17
else raise EConvertError.Create("Фигвам!")
end;
function ChisloVStroka(i: integer): string;
begin
if 1 = 17 then Result := "Вася любил машу"
else raise EConvertError.Create("Фигвам!")
end;
← →
Anatoly Podgoretsky © (2008-08-12 12:08) [22]
> А что (с твоей точки зрения) должно получиться после преобразования?
>
> Ну хотя-бы в общих чертах.
Ни к чему унижаться, ну не хочет он говорит, предпочитает трепаться, ну так это его право, пока не нарушает правил конечно.
← →
oldman © (2008-08-12 12:10) [23]
> Anatoly Podgoretsky © (12.08.08 12:08) [22]
Да мне самому уже интересно.
Строку в число? Блин, наверное что-то крутое!
← →
palva © (2008-08-12 12:26) [24]
> Строку в число? Блин, наверное что-то крутое!
В C# это обычный GetHashCode()
Правда обратную функцию еще не написали.
← →
oldman © (2008-08-12 12:28) [25]у каждой буквы есть код
заменяем символы их кодами, получаем число
заменяем обратно, получаем строку
НО КОМУ ЭТО НАДО???
← →
McSimm © (2008-08-12 12:32) [26]
> oldman © (12.08.08 12:10) [23]
> > Anatoly Podgoretsky © (12.08.08 12:08) [22]
> Да мне самому уже интересно.
Просто провокация
← →
antonn © (2008-08-12 12:57) [27]base64() ?
← →
alex-drob © (2008-08-12 13:00) [28]HEX коды?
← →
alex-drob © (2008-08-12 13:02) [29]> у каждой буквы есть код
> заменяем символы их кодами, получаем число
> заменяем обратно, получаем строку
>
> НО КОМУ ЭТО НАДО???
ну как вариант простенький метод шифрования, например если нужно написать програмку тест по курсовой, то подайдёт чтобы хранить данные о прохождении теста в таком виде, чтобы студент проходивший тест не подделал результат
← →
McSimm © (2008-08-12 13:05) [30]Число := Strings.Add(Строка);
Строка := Strings[Число];
:)
← →
turbouser © (2008-08-12 13:16) [31]
AString:="Вася любил машу";
x:=0;
for i:=1 to Length(AString) do
x:=x+Ord(Astring[i]);
← →
oldman © (2008-08-12 13:34) [32]
> turbouser © (12.08.08 13:16) [31]
А обратно?
← →
ПЛОВ © (2008-08-12 14:30) [33]
> А обратно?
А обратно уже Маша любила Васю )))
← →
MsGuns © (2008-08-12 15:06) [34]И чего тут непонятного-то ? Надо получить сколько раз Вася любил Машу
← →
stas © (2008-08-12 15:06) [35]Действительно странный вопрос.
Может нужно знать сколько раз вася любил машу? )))
← →
stas © (2008-08-12 15:07) [36]MsGuns © (12.08.08 15:06) [34]
)))
← →
Пробегал2.... (2008-08-12 15:21) [37]Palladin © (12.08.08 11:41) [19]
И ты! автор этого ужаса... терпи теперь )
- Как отплыли?! Ведь это же бардак.
- Зато ты главный!
← →
@!!ex © (2008-08-12 16:00) [38]> [37] Пробегал2.... (12.08.08 15:21)
(C)День выборов
← →
БарЛог © (2008-08-12 17:03) [39]> сколько раз вася любил машу?
раз = 1
← →
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.62 MB
Время: 0.022 c