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

Вниз

Подскажите в чем ошибка   Найти похожие ветки 

 
гость   (2004-12-31 12:26) [0]

Посмотрите пожалуйста код 0 записывает, а если exp существует
то значение не записывает

var
ex,a,b:word;
w:string;
f1:textfile;
begin
ex:=pos("exp",sOld);
if ex=1 then
 begin
  a:=pos("(",sOld);
  a:=2;
  b:=a+1;
  while ((sOld[b]>="0")and(sOld[b]<="9"))do
   begin
    w:="" ;
    w:=sOld[b]+w;
   end;
  AssignFile(F1,"c:\Razbor.txt");
  Rewrite(F1);
  Writeln(F1,w);
  CloseFile(F1) ;

  end
 else
  begin
   AssignFile(F1,"c:\Razbor.txt");
   Rewrite(F1);
   Writeln(F1,"0");
   CloseFile(F1) ;
  end;
end;


 
begin...end ©   (2004-12-31 12:33) [1]

> гость   (31.12.04 12:26)

Значение, наверное, записывается, но пустое? Ну тогда, значит, цикл while ни разу не выполняется, т.е. не выполняется условие sOld[b] in ["0".."9"].


 
гость   (2004-12-31 12:36) [2]

подскажите как можно исправить


 
Digitman ©   (2004-12-31 12:40) [3]


>   a:=pos("(",sOld);
>   a:=2;


бред какой-то ..

с НГ !


 
гость   (2004-12-31 12:41) [4]

если убрать a:=2 прога вообще виснет


 
begin...end ©   (2004-12-31 12:42) [5]

> [2] гость   (31.12.04 12:36)

А что этот код ДОЛЖЕН делать?


 
DiamondShark ©   (2004-12-31 12:44) [6]


>   while ((sOld[b]>="0")and(sOld[b]<="9"))do
>    begin
>     w:="" ;
>     w:=sOld[b]+w;
>    end;

Эта... Можно русскими словами пересказать условие завершения этого цикла?

"бред какой-то .." (ц)


 
гость   (2004-12-31 12:49) [7]


> А что этот код ДОЛЖЕН делать?

есть строка в которой на первой позиции exp(какое-то число)
надо сделать следующее записать в файл это самое число если оно существует иди 0 если числа нет


 
Digitman ©   (2004-12-31 12:57) [8]


> есть строка в которой на первой позиции exp(какое-то число)


кроме "exp(какое-то число)" (неважно в какой позиции) в этой строке еще что-то может быть


 
гость   (2004-12-31 13:03) [9]

да может быть но exp должна быть первой.
например
exp(54)*(.............)


 
Digitman ©   (2004-12-31 13:09) [10]

т.е. строка, где в нач.позициях присутствует exp(), являет собой не иначе как арифметическое выражение ?


 
begin...end ©   (2004-12-31 13:21) [11]

> [7] гость   (31.12.04 12:49)

var
 P: Integer;
 sOld, sValue: String;

begin
 P := Pos("exp(", sOld);
 if P = 1 then
 begin
   P := Pos(")", sOld);
   P := P - 5;
   if P > 0 then
   begin
     sValue := Copy(sOld, 5, P);
     // Записываем sValue в файл
   end
 end
end.

А ещё можно было сделать с использованием PosEx.


 
begin...end ©   (2004-12-31 13:24) [12]

Ну и перед тем, как записывать, следует проверить, является ли sValue действительно строковым представлением числа.


 
Digitman ©   (2004-12-31 13:33) [13]


> begin...end


если я правильнго понял, то строка может содержать ПРОИЗВОЛЬНОЕ арифм.выр-е .. первым членом которого обязательно явл-ся ф-ция exp()

а это попахивает полноценным интерпретатором ..
дело худо)

с НГ !


 
begin...end ©   (2004-12-31 13:41) [14]

> [13] Digitman ©   (31.12.04 13:33)

> строка может содержать ПРОИЗВОЛЬНОЕ арифм.выр-е

А, ну если там может быть что угодно, в том числе и со своими скобками, и т.д., тогда, конечно, [11] не подойдёт.

Вообще, гость зациклился на разборе арифметических выражений :-), напр.: http://delphimaster.net/view/1-1104053154/

> с НГ !

Аналогично! :-) И гостя - тоже :-)



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

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

Наверх




Память: 0.49 MB
Время: 0.037 c
14-1103924422
Piter
2004-12-25 00:40
2005.01.16
Народ...


3-1102714041
Zlod3y
2004-12-11 00:27
2005.01.16
Нужны ли генераторы?


3-1103092981
Layner
2004-12-15 09:43
2005.01.16
Подскажите, как вставить в колонку NULL значение в событии


9-1095791473
rs.falcon
2004-09-21 22:31
2005.01.16
Новая версия DoomForever


14-1103899690
olookin
2004-12-24 17:48
2005.01.16
Налоги с зарплаты спортсмена





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