Главная страница
    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.5 MB
Время: 0.037 c
1-1103581432
GanibalLector
2004-12-21 01:23
2005.01.16
PCHAR


9-1096012957
WondeRu
2004-09-24 12:02
2005.01.16
Как в GLScene ограничить движение камеры определенной областью?


6-1097776696
Viper
2004-10-14 21:58
2005.01.16
Обучение работы с сетью


3-1102943626
AlexRush
2004-12-13 16:13
2005.01.16
Oracle 9.2 as TDataSet


14-1103887030
pasha_golub
2004-12-24 14:17
2005.01.16
Manual ZeosDBO





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