Главная страница
    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-1104141631
Aleksandr.
2004-12-27 13:00
2005.01.16
Как у главного меню поменять цвет?


3-1102727909
Black
2004-12-11 04:18
2005.01.16
Как обновить ADOQuery


11-1085650315
Yustas
2004-05-27 13:31
2005.01.16
имя компонента


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


14-1103707677
infom
2004-12-22 12:27
2005.01.16
Играете ли вы на работе в Counter Strike ?





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