Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> string extened integer !!! help please 
:(
    Опции темы
muratboy31
Дата 27.1.2010, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.1.2010

Репутация: нет
Всего: нет



i want to devide the number to 100 i got from a webpage but it doesnt work !!! can someone correct me please !!!


Это сообщение отредактировал(а) muratboy31 - 27.1.2010, 20:13
PM MAIL   Вверх
Regulum
Дата 27.1.2010, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 16.6.2009

Репутация: нет
Всего: 1



Код

alisjpy2:= FloatToStr(strtoint(alisjpy)/100);

PM MAIL   Вверх
muratboy31
Дата 27.1.2010, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.1.2010

Репутация: нет
Всего: нет



why do i get this error !!!

user posted image



Это сообщение отредактировал(а) muratboy31 - 27.1.2010, 20:14
PM MAIL   Вверх
Frees
Дата 27.1.2010, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 16
Всего: 54




alisjpy2:= FloatToStr(StrToFloatDef(alisjpy, 0)/100);


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
artsb
Дата 27.1.2010, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 1
Всего: 64



Цитата(muratboy31 @  27.1.2010,  19:34 Найти цитируемый пост)
why do i get this error !!!

Because 1.6564 is not a valid integer value smile
Код

alisjpy2:= FloatToStr(StrToFloat(alisjpy)/100);


Добавлено через 2 минуты и 32 секунды
Frees quickly smile


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Frees
Дата 27.1.2010, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 16
Всего: 54





Цитата(artsb @  27.1.2010,  22:43 Найти цитируемый пост)
1.6564




artsb, а то что разделитель " . " может помешать! только я не знаю как это по буржуйски написать


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
muratboy31
Дата 27.1.2010, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.1.2010

Репутация: нет
Всего: нет



Цитата(artsb @ 27.1.2010,  19:43)
Цитата(muratboy31 @  27.1.2010,  19:34 Найти цитируемый пост)
why do i get this error !!!

Because 1.6564 is not a valid integer value smile
Код

alisjpy2:= FloatToStr(StrToFloat(alisjpy)/100);


Добавлено @ 19:46
Frees quickly smile

yes that worked perfect  smile 
PM MAIL   Вверх
artsb
Дата 27.1.2010, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 1
Всего: 64



Frees, ага.
На С++ будет так:
Код

alisjpy = StringReplace(alisjpy, ".", DecimalSeparator, TReplaceFlags() << rfReplaceAll);
alisjpy = StringReplace(alisjpy, ",", DecimalSeparator, TReplaceFlags() << rfReplaceAll);

Delphi:
Код

var
 rf: TReplaceFlags;
//...
rf := [rfReplaceAll];
alisjpy := StringReplace(alisjpy, '.', DecimalSeparator, rf);
alisjpy := StringReplace(alisjpy, ',', DecimalSeparator, rf);


Это сообщение отредактировал(а) artsb - 27.1.2010, 20:23


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
bems
Дата 27.1.2010, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



artsb, переменная не нужна


--------------------
Обижено школьников: 8
PM MAIL   Вверх
artsb
Дата 27.1.2010, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 1
Всего: 64



Цитата(bems @  27.1.2010,  20:41 Найти цитируемый пост)
artsb, переменная не нужна 

Ага. Но я не знаю как от неё избавиться в Делфи  smile 


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
bems
Дата 28.1.2010, 06:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



не поверишь
Код

alisjpy := StringReplace(alisjpy, '.', DecimalSeparator, [rfReplaceAll]);



--------------------
Обижено школьников: 8
PM MAIL   Вверх
muratboy31
Дата 28.1.2010, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.1.2010

Репутация: нет
Всего: нет



is it possible to make it like that !!!

1.000,50 
because what i get now is ; 1000.50

i want to add a '.' after every 3 digit and ',' for the cents part...
PM MAIL   Вверх
artsb
Дата 28.1.2010, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 1
Всего: 64



Цитата(bems @  28.1.2010,  06:28 Найти цитируемый пост)
не поверишь

smile Сенкс. Вот и Делфи подучу smile

Цитата(muratboy31 @  28.1.2010,  10:16 Найти цитируемый пост)
i want to add a '.' after every 3 digit and ',' for the cents part... 

Use string instead of float. Or I don't understand what are you mean...


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
muratboy31
Дата 28.1.2010, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.1.2010

Репутация: нет
Всего: нет



i save it to ini file is like that;
JPY=1.4851

i want to show it like that in the project;
1,4851

i mean remove the '.' and put ',' instead...  but also if number is more than thousand or more than i also want to add '.' like that
1.1251,4851
PM MAIL   Вверх
Frees
Дата 28.1.2010, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 16
Всего: 54



artsb,  что сказал?

может вместо FloatToStr использовать Format

Код

  DecimalSeparator := ',';
  ThousandSeparator := '.';
  ShowMessage(Format('%m', [<number>]));



--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
artsb
Дата 28.1.2010, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 1
Всего: 64



Цитата(muratboy31 @  28.1.2010,  10:54 Найти цитируемый пост)
1.1251,4851 

Maybe 11.251,4851 smile


muratboy31, save your number as string. Otherwise not be able.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
muratboy31
Дата 28.1.2010, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.1.2010

Репутация: нет
Всего: нет



yes i save it as string but what it gets from web site is that;

2.0980  so it writes it with '.'  

Код

procedure TFormMain.FormCreate(Sender: TObject);
begin
  DecimalSeparator := ',';
  ThousandSeparator := '.';
  ini1 := TINIFile.Create(ExtractFilePath(Application.ExeName)+'Settings.INI ');
  euro:= ini1.ReadFloat('Settings','JPY', 2.0980);



user posted image

Это сообщение отредактировал(а) muratboy31 - 28.1.2010, 11:21
PM MAIL   Вверх
artsb
Дата 28.1.2010, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 1
Всего: 64



And read as string.
Код

procedure TFormMain.FormCreate(Sender: TObject);
begin
  DecimalSeparator := ',';
  ThousandSeparator := '.';
  ini1 := TINIFile.Create(ExtractFilePath(Application.ExeName)+'Settings.INI ');
  euro:= ini1.ReadString('Settings','JPY', '2.1150');



--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
muratboy31
Дата 28.1.2010, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.1.2010

Репутация: нет
Всего: нет



i will try thanks

Это сообщение отредактировал(а) muratboy31 - 29.1.2010, 18:30
PM MAIL   Вверх
muratboy31
Дата 29.1.2010, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 7.1.2010

Репутация: нет
Всего: нет



thousand seperator didnt work ;
1235,4923

and also i get error when coverting to other currencies...  is it possible that i get it because of download string?
user posted image

İNSİDE İNİ FİLE:
Цитата

[Kurlar Alış]
EURO=2,0879
TL=1,4851
JPY=0,016674



Код

var
  Amount, CFactor : real;
  euro,tlr,jpy: string;
  euro5,tlr5,jpy5: extended;
  FormMain: TFormMain;
implementation


Код

procedure TFormMain.FormCreate(Sender: TObject);
var   
  ini1 : TINIFile;
begin
  DecimalSeparator := ',';
  ThousandSeparator := '.';
  ini1 := TINIFile.Create(ExtractFilePath(Application.ExeName)+'Kurlar.INI ');
  euro:= ini1.Readstring('Kurlar Satış','EURO', '0,00');
  tlr:= ini1.Readstring('Kurlar Satış','TLR', '0,00');
  jpy:= ini1.Readstring('Kurlar Satış','JPY', '0,00');
  ini1.Free;

  RGCurrency.ItemIndex:=0;
  RGDecimals.ItemIndex:=3;
  CurrConvert2;
  CurrConvert;

end;


Код

procedure TFormMain.ConvertShow;
var
  FStr: string;
begin
  if RGDecimals.ItemIndex = 0 then
    FStr := '0,0'
  else if RGDecimals.ItemIndex = 1  then
    FStr := '0,00'
  else if RGDecimals.ItemIndex = 2  then
    FStr := '0,000'
  else if RGDecimals.ItemIndex = 3  then
    FStr := '0,0000';
 
  tl.Text := FormatFloat(FStr, Tlr5)      + '  TLR';
  eur.Text := FormatFloat(FStr, Tlr5 / euro5) + '  EUR';
  jp.Text := FormatFloat(FStr, Tlr5 / jpy5) + '  JPY';

end;


Код

procedure TFormMain.CurrConvert;
var   
  ini1 : TINIFile;
begin
  try
  ini1 := TINIFile.Create( ExtractFilePath(Application.ExeName)+'Kurlar.INI ');
  euro:= ini1.Readstring('Kurlar Satış','EURO', '0,00');
  tlr:= ini1.Readstring('Kurlar Satış','TLR', '0,00');
  jpy:= ini1.Readstring('Kurlar Satış','JPY', '0,00');
  ini1.Free;

  euro5  := strtofloat(euro);
  tlr5  := strtofloat(tlr);
  jpy5 := strtofloat(jpy);

    Amount := StrToFloat(EdInput.Text);
    case RGCurrency.ItemIndex of
      1 : CFactor := euro5;
      2 : CFactor := jpy5;
    else
      CFactor := 1;
    end;
    Tlr5 := Amount * CFactor;
    ConvertShow;
    SetLabelInvisible;
  except
    on EConvertError do
      MessageDlg('Yanlış Değer!', mtWarning, [mbOk], 0);
  end;
end;


Код

procedure TFormMain.RGCurrency1Click(Sender: TObject);
begin
  CurrConvert;
end;

procedure TFormMain.RGDecimals1Click(Sender: TObject);
begin
  CurrConvert;
 end;


Код

procedure TFormMain.EdInputKeyPress(Sender: TObject; var Key: Char);
var
  defstyle: dWord;
begin
  defstyle := GetWindowLong(EdInput.Handle, GWL_STYLE);
  SetWindowLong(EdInput.Handle, GWL_STYLE, defstyle or ES_NUMBER);

  if Key = #13 then 
    CurrConvert;
    
  else
    if (Key = ',') and (DecimalSeparator = '.') then 
      Key := '.' 
    else
      if (Key = '.') and (DecimalSeparator = ',') then 
        Key := ',';
 end;
end;



Код

procedure TFormMain.bsSkinSpeedButton1Click(Sender: TObject);
var
alisjpy2, satisjpye3, z,ze,jpye, satis, satise, satisjpye, aranan,aranan2,aranan6,  gun1,ay1,yil1 :string;
yer,yere,yer6,i:Integer;
ini1 : TINIFile;
songuncel: TDate;
saat:ttime;
saat2, songuncel2:string;
begin
  ini1 := TINIFile.Create(ExtractFilePath(Application.ExeName)+'Kurlar.INI ');
  gun1:=formatdatetime('DD', tarih.date);
  ay1:=formatdatetime('MM', tarih.date);
  yil1:=formatdatetime('YYYY', tarih.date);
  try
   z:=IDHttp1.Get('http://www.tcmb.gov.tr/kurlar/'+yil1+ay1+'/'+gun1+ay1+yil1+'.html');
  except
   Showmessage('Bu Tarihe Ait Döviz Kuru Bulunamadı !!!');
   Exit;
  end;
  z:=IDHttp1.Get('http://www.tcmb.gov.tr/kurlar/'+yil1+ay1+'/'+gun1+ay1+yil1+'.html');
  ze:=IDHttp1.Get('http://www.tcmb.gov.tr/kurlar/'+yil1+ay1+'/'+gun1+ay1+yil1+'.html');
  jpye:=IDHttp1.Get('http://www.tcmb.gov.tr/kurlar/'+yil1+ay1+'/'+gun1+ay1+yil1+'.html');
///////////////////////////////////////////////////////
  aranan:='1 TÜRK LİRASI';
  aranan2:='1 EURO';
  aranan6:='100 JAPON YENİ';

    for i:=1 to 1 do
    begin
    ////////////////////////////////////////
    yer:=pos(aranan,z);
    yere:=pos(aranan2,ze);
    yer6:=pos(aranan6,jpye);
    if yer=0 then
      begin
      ShowMessage('Kur bilgisi yok');
      exit;
    end
      else
      begin
      /////////////////////////////////////
      yer:=yer+length(aranan);
      yere:=yere+length(aranan2);
      yer6:=yer6+length(aranan6);
      //////////////////////////////////////
      z:=copy(z,yer,length(s)-yer);
      ze:=copy(ze,yere,length(ze)-yere);
      jpye:=copy(jpye,yer6,length(jpye)-yer6);
     ///////////////////////////////////////
      z:=trim(z);
      ze:=trim(ze);
      jpye:=trim(jpye);
      ////////////////////////////////////////
      satis:=copy(z,14,6);
      satise:=copy(ze,14,6);
      satisjpye:=copy(jpye,14,6);
      /////////////////////////////////////////
      ini1.WriteString('Kurlar Satış','EURO', satise);
      ini1.WriteString('Kurlar Satış','TL', satis);

      satisjpye2:= FloatToStr(StrToFloat(satisjpye)/100);
      ini1.WriteString('Kurlar Satış','JPY', alisjpy2);
      ini1.Free;

        DecimalSeparator := ',';
        ThousandSeparator := '.';
        RGDecimals.ItemIndex:=3;
        CurrConvert;

      end;
    end;
end;




Это сообщение отредактировал(а) muratboy31 - 29.1.2010, 18:31
PM MAIL   Вверх
artsb
Дата 29.1.2010, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 1
Всего: 64



muratboy31,
Write:
1. convert float to string
2. add thousand seperator
3. write to file as string
Read:
1. read from file as string
2. delete thousand seperator
3. convert string to float


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0719 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.