Главная страница
    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.039 c
1-1104358483
ariec
2004-12-30 01:14
2005.01.16
рег компонента


14-1104139505
Hypercube
2004-12-27 12:25
2005.01.16
Ющенко победил


1-1103797429
Pavelkq
2004-12-23 13:23
2005.01.16
Кодировка что ли?


14-1104411165
syte_ser78
2004-12-30 15:52
2005.01.16
вопрос по Treeview


3-1103184184
Sergo
2004-12-16 11:03
2005.01.16
IBDataBase





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