Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка конвертации из string в real. 
V
    Опции темы
northener
Дата 17.3.2011, 02:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(asres1 @  16.3.2011,  12:02 Найти цитируемый пост)
ага, спасибо
Их очеееень много. Первый вопрос такой:

Первый мой ответ таков: Я не знаю что вам дал Keeper89. Я весьма уважаю этого участника форума, но не могу за него/вместо него/лучше его отвечать на вопросы о его примере, не зная  сам его пример.

Вот не кажется ли вам удивительным, что мы вам отвечаем гораздо чаще, чем вы нам?
А ведь кому это надо? Нам или вам?
smile


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
asres1
Дата 17.3.2011, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 12.10.2010
Где: Украина

Репутация: 1
Всего: 1



Цитата
Вот не кажется ли вам удивительным, что мы вам отвечаем гораздо чаще, чем вы нам?

Удивительно! Обычно форумчане посылают, а тут помогают. оооочень удивительно!  smile 


Я начал с простого-паскаля. Начал вспоминать как там работать со строкой. Мои наработки на фоне ЭТОГО стыдно показывать. 
 smile  
Но я попытаюсь всё таки сделать свой вариант, пусть он будет простенький. И вот если мой не получиться возьму вариант Keeper`a.  Как вы считаете, это правильно? 

Это сообщение отредактировал(а) asres1 - 17.3.2011, 23:04
PM MAIL   Вверх
Keeper89
Дата 17.3.2011, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 9
Всего: 58



Цитата(asres1 @  17.3.2011,  22:54 Найти цитируемый пост)
 Как вы считаете, это правильно?

А щас чуть со стула не упал. А что должно получится - у самого есть представление?
Или такое задание и было: возьми одно число через Copy(S, 1, 4), а второе через COpy(S, 5, 4)? Что в итоге-то должно быть?


--------------------
PM MAIL WWW   Вверх
asres1
Дата 18.3.2011, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 12.10.2010
Где: Украина

Репутация: 1
Всего: 1



Цитата
А щас чуть со стула не упал. А что должно получится - у самого есть представление?

Слабо. Буду делать по методике - часть сделал-проконсультировался у препода. Надеюсь таким макаром сделать.

Цитата

Или такое задание и было: возьми одно число через Copy(S, 1, 4), а второе через COpy(S, 5, 4)? Что в итоге-то должно быть?

В точку, на вопрос что куда что считывать мне написали на листочке 7 строчек кода, из них которые несколько бегинов  три цикла и copy  smile 
ну через пару мне подробно обьяснили что то иксы, а то у-ки, то туда выводит, а то туда. А что считывать вот догадываюсь только по Copy

Это сообщение отредактировал(а) asres1 - 18.3.2011, 01:07
PM MAIL   Вверх
northener
Дата 18.3.2011, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(asres1 @  17.3.2011,  22:54 Найти цитируемый пост)
Как вы считаете, это правильно? 

Не понятно что "это".

Цитата(asres1 @  17.3.2011,  22:54 Найти цитируемый пост)
Я начал с простого-паскаля. Начал вспоминать как там работать со строкой. Мои наработки на фоне ЭТОГО стыдно показывать. 

Вот что действительно может быть стыдно! smile 
А стыдиться показывать свой код задавая профессиональные вопросы на подобном форуме в разделе "Для новичков" по меньшей мере глупо. По большей - это лишний "напряг", для тех кто вам отвечает. Ибо им совершенно непонятно как вы восприняли их советы/рекомендации/примеры.

Цитата(asres1 @  17.3.2011,  22:54 Найти цитируемый пост)
Но я попытаюсь всё таки сделать свой вариант

Попытка не пытка.  Удачи! Ветер вам в спину.

Добавлено через 3 минуты и 37 секунд
Цитата(asres1 @  18.3.2011,  01:04 Найти цитируемый пост)
Буду делать по методике - часть сделал-проконсультировался у препода. Надеюсь таким макаром сделать.

А! Так это учебное задание. Ну так сразу надо было это сказать. Решение учебных задач имеет свою специфику! smile


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
asres1
Дата 19.3.2011, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 12.10.2010
Где: Украина

Репутация: 1
Всего: 1



Поздровляю всех с выходними, аж не вериться что они наступили.   smile 


Цитата
Не понятно что "это". 

Ход мыслей "типо"


Цитата(asres1 @  17.3.2011,  22:54 Найти цитируемый пост)
Попытка не пытка.  Удачи! Ветер вам в спину.

 smile 



Цитата
Решение учебных задач имеет свою специфику!

...ну или нерешение



Появились вопросы. 
1) Вобщем, сделал я на паскале меленькую софтину которая в строке считает пробелы, а потом когда попадаеться число из множества запускаеться copy. Делал по идее Keeper`a, ток по простецкому.
в чём вопрос. Как делфи создать множество формата стринг?


2) Код Keeper`a выдаёт целый ряд ошибок. название кнопки меняю. 
Скрин ниже.
как я понял, ошибки в основном из-за переменных. 




 Я СДЕЛАЛ     smile    smile   smile   smile 
Код



i:=0; g:=0;
k:=0;
St1:=edit1.text;


While not EOF(f) do                   //<<<<<<
 begin
     readln(F,St);

if pos (St1,St)<>0 then
  begin
    Showmessage(''+edit1.Text+' íàéäåíî');
    readln(F,St);
           Showmessage(st+' íàéäåíî');
              if Pos('\',St)>0 then
                  begin
                   LengMas:=StrToInt( copy(St,1+Pos('\',St),2) );
                   Showmessage(IntToStr(LengMas)+'  mas');
                  end;


                for i:=0 to LengMas do
                 begin
                  readln(F,st);
                     while (st[k+1]=' ') and (length(st)>=k) do
                          begin
                               k:=k+1;
                               Showmessage(IntToStr(k)) ;
                          end;
                          x[i]:=copy(St,k,5);
                          y[i]:=copy(St,k+5,5);

                          x1[i]:=StrToFloat(x[i]);
                          y1[i]:=StrToFloat(y[i]);
                           Showmessage(FloatToStr(x1[i])+FloatToStr(y1[i])) ;

                 end;





          end;
        //
 end;

 //




Спасибо Keeper`y за идею. Спасибо northener за смысловые ответы.  Можно некоторое время темму не закрывать? Ибо скоро могут появиться опять вопросы.



Это сообщение отредактировал(а) asres1 - 19.3.2011, 20:56

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  trabl.JPG 212,21 Kb
PM MAIL   Вверх
northener
Дата 20.3.2011, 02:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(asres1 @  19.3.2011,  18:21 Найти цитируемый пост)
Спасибо northener за смысловые ответы

"Нет за что". smile

А что и как сделал?
Ибо "Можно некоторое время темму не закрывать? Ибо скоро могут появиться опять вопросы."
Но пример от 19.3.2011, 18:21 явно не рабочий. Ибо нет обнуления k при считывании следующей строки координат.
Перестань наконец "партизанить"!


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
asres1
Дата 20.3.2011, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 12.10.2010
Где: Украина

Репутация: 1
Всего: 1



Цитата
А что и как сделал?

переделывал раз 10


Дохожу до нужного мне места (шпангоута - '&s') 
читаю
нахожу в строке '/',  считываю (кол-во координат)
запускается цикл до кол-ва координат :
  если в строке пробелы, считаем их. копируем с К позиции
  профит   smile 


Цитата
Но пример от 19.3.2011, 18:21 явно не рабочий.
Ибо нет обнуления k при считывании следующей строки координат. 

Тестировал всё утро-пашет. 
Угумс, данке сшон за поправку. Исправлю. Работает за счёт того, что строки имеют одинаковое число пробелов. Спасибо что сказали.



Цитата
Перестань наконец "партизанить"! 

WT?   smile 



П.С. Вместо доп. масива сделал через строку. вставил динамический масив. smile 

П.С.2 northener, спасибо за крутую сылку.   smile    smile   

П.С.3  northener,  кажись я понял. Вы "партизанить"  имели ввиду "показать код". Доведу вечером до фабричного вида и скину всю прогу.  Вместе с кодом. 


П.С. 4  Нашёл баг и не успел доделать.   smile 

Это сообщение отредактировал(а) asres1 - 21.3.2011, 02:20
PM MAIL   Вверх
asres1
Дата 27.3.2011, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 12.10.2010
Где: Украина

Репутация: 1
Всего: 1



Я сделал 
Можёт и есть неточности, но теперь всё работает как надо.



Определение номера шпангоута.

Код

Function InputEdit:string;
var number:integer;
begin
number:=StrToInt(St_number);
 if (number>=1) or (10<number) then
    InputEdit:='&s '+IntToStr(number);
 if (number>=10) or (30<number) then
    InputEdit:='&s'+IntToStr(number);
end;




Считывание значений.

Код

procedure Read(var Str:string; var count_digits,count_dot,different:integer);
var i:integer;
const
 Alphabet_big= ['A'..'Z'];
Alphabet_small= ['a'..'z'];
Digits= ['0'..'9'];

begin


  while  not (str[count_dot+1]='.')   and (length(str)>=count_dot)   do
   begin
     inc(count_dot);
   end;


  count_digits:=count_dot;

  for i:=count_dot downto 1 do
   begin
         while not  (str[count_digits-3]='.') and (str[count_digits-1] in Digits) do
               begin
                   if   (str[count_digits-1] in Digits)  then count_digits:=count_digits-1
                   else break;
              end;
    end;



   different:=count_dot-count_digits;


end;




Главная процедура. В правке пока smile
Код

i:=1;
Leng_Dig_afrDot:=3;

St_number:=Edit1.Text;
//memo1.Lines.Add(InputEdit);


While not EOF(f) do
 begin
    readln(F,St);

 if pos(InputEdit,St)<>0 then
   begin
     readln(F,St);

       repeat
            count_digits_x:=0; count_dot_x:=0; different_x:=0;
            count_digits_y:=0; count_dot_y:=0; different_y:=0;


             if Pos('\',St)>0 then
                begin
                    temp_str:=copy(St,Pos('\',St)+1,2);
                     LengMas:=StrToInt(temp_str);
                       //íà îäíî ïîëîæåíèå áîëüøå êîïèðóåì, ò.ê. îòñ÷¸ò ñ íîëÿ
                       //2 êîëè÷åñòâî öèôåð ðàçìåðà ìàñèâà
                      //áîëüøå 2 ïîêà íå íóæíî
                    showmessage(IntToStr(LengMas));
                 end;




                  readln(F,St);
                    read(St,count_digits_x,count_dot_x,different_x);
                      x[i]:=copy(St,(count_digits_x),(different_x+Leng_Dig_afrDot+1));


                      count_dot_y:=count_dot_x+count_dot_y+Leng_Dig_afrDot;
                      count_digits_y:=count_digits_x+count_digits_y;
                      showmessage(IntToStr(count_digits_y)+'  '+IntToStr(count_dot_y));
                     read(St,count_digits_y,count_dot_y,different_y);


                        y[i]:=copy(St,(count_digits_y),(different_y+Leng_Dig_afrDot+1));


                       //x1[i]:=StrToFloat(x[i]);


                  //âûâîä
                  memo1.Lines.Add(St);
                  counts.Lines.add(IntToStr(count_digits_x)+' '+IntToStr(count_dot_x)+' '+IntToStr(different_x));
                 memo2.Lines.Add(x[i]);
                  counts.Lines.add(IntToStr(count_digits_y)+' '+IntToStr(count_dot_y)+' '+IntToStr(different_y));
                  memo3.Lines.Add(y[i]);


         until pos('&s',St)>0
    end

 end;

end;




Вот ехе'шник с файлом. 
http://upload.com.ua/link/902471146



Всем спасибо! темму можно закрывать.   smile 







PM MAIL   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0638 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.