Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];

Вниз

Как сделать функцию типа format, только чтобы не в текст   Найти похожие ветки 

 
РеФорм   (2005-02-15 01:16) [0]

вставлялись цифры, а наоборот ?

У меня есть три числа : f1, f2, f3 : Single;
И есть шаблон : "Position(%f, %f, %f);"

Мне надо, чтобы, например для строки "Position(1, 2, 3);" в f1, f2, f3 помещались 1, 2, 3 соответственно.
А если "Position(5, -22, 13);" то, чтобы в f1, f2, f3 помещались 5, -22, 13 соответственно. Ну, и так далее. Думаю понятно. Как такое сделать ?

Да, и должна быть возможность не только с тремя числами работать, а с разным количеством.

Думаю такая функция многим была бы полезна.


 
iskatel ©   (2005-02-15 01:29) [1]

зто не функция, а целый раздел лексического анализа, называется регулярные выражения (RegExp) поищи...


 
Германн ©   (2005-02-15 01:35) [2]

Честно сказать, не понимаю, чем "такая функция" была бы полезна кому-нибудь, кроме ее автора. Поскольку совершенно понятно, что "реальные значения" параметров такой функции должны вводиться в RealTime, а там для ввода существует множество возможностей.


 
Alex Konshin ©   (2005-02-15 01:54) [3]

Такая функция есть с C/C++, scanf называется.
В Delphi иногда можно воспользоваться Read/Readln.


 
РеФорм   (2005-02-15 02:20) [4]


> iskatel ©   (15.02.05 01:29) [1]
> зто не функция, а целый раздел лексического анализа, называется
> регулярные выражения (RegExp) поищи...

БЕЗ РЕГЭКСПОВ !


> Германн ©   (15.02.05 01:35) [2]
> Поскольку совершенно понятно, что "реальные значения" параметров
> такой функции должны вводиться в RealTime,

... или считываться из файла. А поскольку никто никогда не сохраняет ничего в файлы, то и функция не нужна. Правильно ?


> Alex Konshin ©   (15.02.05 01:54) [3]
> Такая функция есть с C/C++, scanf называется.
> В Delphi иногда можно воспользоваться Read/Readln.

Как воспользоваться ? А можно код функции scanf ? Можно её конвертировать в Дельфи ?


 
Германн ©   (2005-02-15 02:34) [5]

2 РеФорм   (15.02.05 02:20) [4]
> ... или считываться из файла. А поскольку никто никогда не сохраняет ничего в файлы, то и функция не нужна. Правильно ?

А разве считывание из файла производится не в RealTime?


 
begin...end ©   (2005-02-15 09:06) [6]

> РеФорм   (15.02.05 2:20) [4]

> А поскольку никто никогда не сохраняет ничего в файлы,
> то и функция не нужна.

Вещественные числа (и вообще числа) нужно сохранять не в текстовые файлы, а в типизированные. И тогда то, что из файла прочитается, не надо даже разбирать, - всё и так понятно. Потому что читаться будут не строки с пробелами и запятыми, а сами числа.

А в случае, если от строк уйти (уже) нельзя, и никакие компоненты Вы использовать не хотите - почитайте про конечные автоматы. Здесь - довольно лёгкий случай. А можно даже и без автоматов в чистом виде.


 
REA   (2005-02-15 10:39) [7]

>Можно её конвертировать в Дельфи ?

Где то даже видел.


 
TUser ©   (2005-02-15 11:39) [8]

Для Delhpi есть компонент TRegExpr. Поищи на www.torry.net

Но, если честно, то в данном случае лучше не привязываться к каким-то компонентам, а писать все ручками, например так
buf:=""; n:=0; s:=0; S:=S+" ";
for i:=1 to length(S)
case s of
0:
if s[i] <> " " then
  buf:=buf+s[i]
  else begin
  s:=1; inc (n);
  f[n]:=StrToInt(buf);
  end;
1:
 if s[i] <> " " then begin
   buf:=s[i]; s:=0;
   end;
end; // case



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

Форум: "Основная";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.04 c
1-1108419383
РеФорм
2005-02-15 01:16
2005.02.27
Как сделать функцию типа format, только чтобы не в текст


3-1106667952
S.A.S.
2005-01-25 18:45
2005.02.27
UpplyUpdates. FireBird Embedded. DBExpress.


14-1107419422
Форумописатель
2005-02-03 11:30
2005.02.27
Код Форума


3-1106657138
}|{yk
2005-01-25 15:45
2005.02.27
Параметрические запросы в Oracle


14-1107891150
bopmy
2005-02-08 22:32
2005.02.27
Работа со сканерами штрихкода





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский