Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Находит ошибку в тексте


Автор: Rondo 8.7.2006, 01:34
 smile 
Пытаюсь сделать
Код

x:= StrToInt(edit1.text)

Выдает ошибку типа
Код

''25' is not valid integer value

Хотя там нет третей ковычки  smile что за шляпа?
  

Автор: Poseidon 8.7.2006, 01:37
Там не третья ковычка, там в edit1 не 25, а ковычка25 (т.е. '25) 

Автор: Rondo 8.7.2006, 01:38
В том и дело что нету в edit никакой ковычки, чистое число...

Добавлено @ 01:39 
Ну и взятся ей там оттуда просто неоткуда 

Автор: Poseidon 8.7.2006, 01:40
Тогда хочу весь проект (без ехе разумеется) в архиве. Либо сюда, либо на мэйл.

Можно, конечно, не весь проект, а только "критическую" функцию/процедуру  smile  

Автор: Rondo 8.7.2006, 01:48
Цитата(Poseidon @ 8.7.2006,  01:40)
Тогда хочу весь проект (без ехе разумеется) в архиве. Либо сюда, либо на мэйл.

Можно, конечно, не весь проект, а только "критическую" функцию/процедуру  smile

Отправил вам на маил, посмотрите в чем трабла.. проект правдо загаженный и написан неопытным програмером  smile  

Автор: Poseidon 8.7.2006, 01:54
Прилетело мне 3 проекта в одном архиве. Строки "x:= StrToInt(edit1.text)" не найдено не в одном. Где смотреть? smile 

Автор: Palladin 8.7.2006, 01:54
А попробуй такsmile

Код

edit1.text:=stringreplace(edit1.text,'номер одинарной ковычки(аски код короче)','',[rfreplace]);


ГЫsmile
а потом уже сделай

Код

x:= StrToInt(edit1.text);
  

Автор: Rondo 8.7.2006, 01:57
Цитата(Poseidon @ 8.7.2006,  01:54)
Прилетело мне 3 проекта в одном архиве. Строки "x:= StrToInt(edit1.text)" не найдено не в одном. Где смотреть? smile

Начиная со 158 где то до 170 строки в юните main
vneshvhod:= Round(StrToFloat(rzedvneshvhod.Text)); 

Автор: Palladin 8.7.2006, 02:00
Или может так попробуй, обычно такой знак ставится когда запись представлена так:   
пробел25

попробуй сделать так 

Код

edit1.text:=stringreplace(edit1.text,' ','',[rfreplace]);



а потом 


Код

x:= StrToInt(edit1.text);
 

Автор: Rondo 8.7.2006, 02:00
все editы получают текст из мемо, там тоже нет этих '

Добавлено @ 02:05 
а какой у этой ковычки аскин код?

Добавлено @ 02:06 
И где все эти коды можно посмотреть  smile  

Автор: Palladin 8.7.2006, 02:07
а ты когда записываеш в едит строку из мемо. у тебя первая строка в memo какая????

P.S. Просто сделай какуюнить обработку, ну чтобы в едит записатся могло только число, без каких либо символов!!!

Добавлено @ 02:09 
Про аски код ковычки незнаю(сам ещё в делфи пишу с пол года smile ) Ща Пасейдон скажет smile  

Автор: Poseidon 8.7.2006, 02:09
Я ничего понять не могу.

Во-первых в начале было написано: 
Цитата(Rondo @  8.7.2006,  01:34 Найти цитируемый пост)
x:= StrToInt(edit1.text)


теперь 
Цитата(Rondo @  8.7.2006,  01:57 Найти цитируемый пост)
vneshvhod:= Round(StrToFloat(rzedvneshvhod.Text)); 


Во -вторых такой строки в коде я не нашел smile Нашел только vnutrvhod:= Round(StrToFloat(Trim(rzedvnutrvhod.Text))); Не понятна логика использования тут функции Trim. Ну да ладно, может так надо smile

В третьих в проекте использованы не стандартные компоненты (TRzEdit, TRzButton, TRzComboBox и др.). Хотелось бы их тоже получить, т.к. скомпилировать ваш код я не могу без них.

И в четвертых, добро пожаловать ко мне в личку (мэйл, ICQ, IRC, PM - не важно). Потому как этот вопрос уже не для форумского обсуждения  smile 
 

Автор: Rondo 8.7.2006, 02:09
У меня в memo столбец чисел, кажное число в отдельной строчке.. и нету там этих ковычек 

Автор: Palladin 8.7.2006, 02:10
А покажи тот отрывок кода когда ты из мемо в едит пишеш, там ошибка стопудова! 

Автор: Rondo 8.7.2006, 02:12
Можно ваш номер аськи, или ко мне стукните 7799701

Добавлено @ 02:13 
Код

         countl:= mmo2.lines.count;
         rzed4.Text:= mmo2.Lines[countl-1];
         rzedvnutrvhod.Text:= mmo2.Lines[countl-3];
         rzed2.Text:= mmo2.Lines[countl-2];
         rzedvneshvhod.Text:= mmo2.Lines[countl-4];

тут я заполняю 4 edita  

Автор: Palladin 8.7.2006, 02:20
о, я ж говорил он знаетsmile 

значит так пиши 

Код

edit1.text:=stringreplace(edit1.text,'#39','',[rfreplaceall]);


smile 

Автор: volvo877 8.7.2006, 02:22
RooR, не так... Вот так:
Код
edit1.text:=stringreplace(edit1.text,#39,'',[rfreplaceall]);
, иначе будет искаться строка '#39' полностью... 

Автор: Palladin 8.7.2006, 02:30
ага спасибо, морознул 

Автор: Rondo 8.7.2006, 03:47
Пля smile
Непойму почему он такую чушь морозил с ковычками, но выход нашелся.
Почасав репу решил в мемо заменить все числа с точками на запятые  smile 
Столько парился... Ошибка была совсем в другом 
Спасбо все кто помогал smile 

Автор: Palladin 8.7.2006, 11:51
Ошибка была в том что ты вместо точек ставил запятые smile  и я столько парился, агрх, пытаясь что-то исправить smile 

P.S. Ну ты дал smile  

Автор: DemoCode 8.7.2006, 11:57
Учти, что такая ошибка может быть на других компах, где в качестве сепаратора установлена не запятая, а точка и наоборот. Поэтому лучший вариант - заменять в строках, которые конвертишь во флоаты точки и запятые на DecimalSeparator.  

Автор: Rondo 8.7.2006, 14:15
Это просто поставить 
 
Код

 mmo2.Text:= StringReplace(mmo2.Text, '.', DecimalSeparator, [rfReplaceAll]);

и все?

Добавлено @ 14:16 
Цитата(RooR @ 8.7.2006,  11:51)
Ошибка была в том что ты вместо точек ставил запятые smile  и я столько парился, агрх, пытаясь что-то исправить smile 

P.S. Ну ты дал smile

Угу, парились smile
Компилятор то выдавал ошибку совсем другую smile  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)