Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
2-1219384408
arbin
2008-08-22 09:53
2008.10.05
работа c FTP


2-1219247974
fellow
2008-08-20 19:59
2008.10.05
цвет строки dbgrid по условию определенного поля


2-1217651715
Newser
2008-08-02 08:35
2008.10.05
Как добавить EXE файл в своё приложение и запустить его?


2-1219917796
D7
2008-08-28 14:03
2008.10.05
COM-сервера


2-1218625101
Дмитрий
2008-08-13 14:58
2008.10.05
Как заполнить поле одной таблицы из другой - перенести данные