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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Парс строк... нужен алгоритм 
:(
    Опции темы
CodeMonkey
Дата 25.5.2009, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Опечатка, должно быть:
Код
S := Str[X];


Цитата
И функцию SortArray тож если можешь выложи...

Эээ.. не понял...  вы ж сказали, что сортируете данные? Вот сюда и вставляйте свою сортировку. Нет никакой SortArray - я её придумал, вставил сюда, чтобы показать, что тут должна быть сортировка данных.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Palladin
Дата 25.5.2009, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



В том-то и был вопрос, я не до конца понял алгоритм, раз сортировка моя нужно, то норм все...
Дает ошибку... левую(не исключение), пробовал пропарсить так нчиего и не понял, вроде все норм, потом не с того ни с сего ошибкО smile 
Не удается найти ошибку вот что в файле:
Код

1;05;2009;8.12;В;В;8.12;8.12;8.12;8.12;8.12;П;В;8.42;8.12;8.12;8.12;8.12;В;В;8.12;8.12;8.12;4;У;В;В;У;У;У;У;У;В;В;0;0.0;1;0;
1;05;2009;8.12;В;В;4.12;8.12;8.12;8.12;8.12;П;В;8.12;8.12;8.12;8.12;8.12;В;В;8.12;8.12;8.12;8.12;8.12;В;В;8.12;8.12;8.12;8.12;8.12;В;В;0;0.0;1;0;
127;05;2009;8.12;В;В;8.12;8.12;8.12;8.12;8.12;П;В;8.02;8.12;8.12;8.12;8.12;В;В;8.12;8.12;8.12;8.12;8.12;В;В;8.12;8.12;8.12;8.12;8.12;В;В;0;0.0;1;0;
157;05;2009;8.12;В;В;8.12;8.12;8.12;8.12;8.12;П;В;8.12;8.32;8.12;8.12;8.12;В;В;8.12;8.12;8.12;8.12;8.12;В;В;8.12;8.12;8.12;8.12;8.12;В;В;0;0.0;1;0;
2;05;2009;8.12;В;В;8.12;8.12;8.12;8.12;8.12;П;В;8.12;8.12;8.12;8.12;8.12;В;В;0;0;0;0;0;В;В;0;0;0;0;0;В;В;0;86.0;1;0;
213;05;2009;8.12;В;В;8.12;8.12;8.12;8.12;8.12;П;В;8.12;8.12;8.12;8.12;8.12;В;В;8.12;8.12;8.12;8.12;8.12;В;В;8.12;8.12;8.12;8.12;8.12;В;В;0;0.0;1;0;
3;05;2009;8.12;В;В;8.12;8.12;8.12;8.12;8.12;П;В;8.12;8.12;8.12;8.12;8.12;В;В;8.12;8.12;8.12;8.12;8.12;В;В;8.12;8.12;8.12;8.12;8.12;В;В;0;0.0;1;0;
763;05;2009;8.12;В;В;8.12;8.12;8.12;8.12;8.12;П;В;8.12;8.12;8.12;8.12;8.12;В;В;8.12;8.12;8.12;8.12;8.12;В;В;8.12;8.12;8.12;8.12;8.12;В;В;0;0.0;1;0;
782;05;2009;8.12;В;В;8.12;8.12;5.12;3.33;8.12;П;В;8.12;8.11;8.12;4.44;6.40;В;В;4.40;8.12;8.12;8.12;8.12;В;В;8.12;8.12;8.12;8.12;8.12;В;В;0;0.0;1;0;

Эт реальный пример, так сказать, попробуй прогнать его через свой код...
Первые две строки должны сложится там где это возможно, остальные остаться как и были...


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
CodeMonkey
Дата 25.5.2009, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



У меня под рукой сегодня нет машины с Delphi.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Palladin
Дата 25.5.2009, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вот какая ошибка
Код

"Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 004043C0 in module 'Project1.exe'. Write of address 00000000'. Process stopped. Use Step or Run to continue"


Добавлено через 11 минут и 30 секунд
Нашел, вообщем разбиение на поля проходит на ура, но как только начинается вот этот участок кода, сразу же бьет ошибку:
Код

...............................................................
      SetLength(Dst, Str.Count - 1);
      try
        Cnt := 0;
        for X := 0 to Str.Count - 1 do
        begin
 
          if (Cnt = 0) or (Src[X][0] <> Dst[Cnt - 1][0]) then
          begin
            for Y := 0 to FieldCnt - 1 do 
              Dst[Cnt][Y] := Src[X][Y];    <----------------вот здесь сразу же вылетает, видимо пытается сослатся на то чего нет
            Inc(Cnt);
          end
          else
          begin
            Dst[Cnt][1] := Src[X][1]; 
            Dst[Cnt][2] := Src[X][2];
            for Y := 3 to FieldCnt - 1 do
            begin
              B1 := TryStrToFloat(Src[X][Y], V1);
              B2 := TryStrToFloat(Dst[X][Y], V2);
              if B1 <> B2 then
                raise Exception.Create('Âîçíèêëî êàêîå-òî ÃÃ â ñòðîêàõ X - 1 è X â ïîëå Y.');
              if B1 then
                Dst[Cnt][Y] := FloatToStr(V1 + V2)  /
              else
                Dst[Cnt][Y] := Src[X][Y];            
            end;

          end;
        end;
        SetLength(Dst, Cnt);


      finally
        Finalize(Dst);
      end;
    finally
      Finalize(Src);
    end;
  finally
    FreeAndNil(Str);
  end;




--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Palladin
Дата 25.5.2009, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Хм, вообещм ошибка, с выделением памяти под Dst smile если сделать не динамические массивы Dst и Src все проходит без ошибок, сейчас буду смотреть что там внутри...

Добавлено через 12 минут и 53 секунды
Внутри мусор почему-то...


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
dumb
Дата 26.5.2009, 01:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

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



Palladin, слово "отладчик" слышал?
PM MAIL   Вверх
CodeMonkey
Дата 26.5.2009, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Должно быть:
SetLength(Dst, Str.Count, FieldCnt);


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Palladin
Дата 27.5.2009, 05:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вообщем, так и не удалось довести этот код до у ма, но алгоритм был понятен, поэтому переписал все по своему, и все работает, спс CodeMonkey, как и говорил даю 3 плюса
P.S. ктоить дайте ему два плюса, а то ток 1 в день можно


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Dobermann
Дата 27.5.2009, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Watch'ем посмотри значения Src[X][Y]

Это сообщение отредактировал(а) Dobermann - 27.5.2009, 08:23
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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