Главная страница
    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.062 c
1-1108479880
Dmitry_04
2005-02-15 18:04
2005.02.27
Программно "развернуть" и "свернуть в окно" форму


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


14-1105982313
MDFE
2005-01-17 20:18
2005.02.27
MDFE News сервер для чтения форума Мастера "DELPHI".


14-1107469199
ЫУТ
2005-02-04 01:19
2005.02.27
Как просклонять фамилии


3-1107013435
neat
2005-01-29 18:43
2005.02.27
dbExpress. Ошибка в параметре запроса





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский