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

Поиск:

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


Опытный
**


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

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



Пишу программу, осталась последняя не реализованная задача. Собстно в программе необходимо сделать выгрузку в .txt файл
В него записи из таблицы БД переносятся и принимают подобный вид:
Код

1827;07;2009;8.12;8.12;В;9.12;4.08;8.12;8.12;О;9.12;4.08;8.12;8.12;В;9.12;4.08;8.12;8.12;В;9.12;4.08;8.12;8.12;В;9.12;4.08;0;20;45;0;

(пример выгрузки, ну стркоа сверху, и дальше по тексту, написана тут на форуме и кол-во разделителей не соответсвует истинному значению. Кол-во разделителей равна 3+кол-во дней в месяце+4) кол-во денй в месяце в программе хранится в глобальной переменной day_of_month

Как видно точка с запятой является разделителем, первым идет инвентарный номер, потом идет месяц и год, а дальше различные числа или буквы как вещественные, так и целые, тут все норм это я сделал(формируется файил  туда все как надо переносится), но в случае если инвентарные номеры одинаковые(а они могут быть одинаковыми) необходимо суммировать две строки, т.е. к примеру у нас в файле(кстати строки в файле отсортированы по инвентарному номеру) встречается:
Код

.......................................
1819;07;2009;8.12;8.12;В;9.12;4.08;8.12;8.12;О;9.12;4.08;8.12;8.12;В;9.12;4.08;8.12;8.12;В;9.12;4.08;8.12;8.12;В;9.12;4.08;0;20;45;0;
1827;07;2009;8.12;8.12;В;9.12;4.08;8.12;8.12;О;9.12;4.08;8.12;8.12;В;9.12;4.08;8.12;8.12;В;9.12;4.08;8.12;8.12;В;9.12;4.08;0;20;45;0;
1827;07;2009;8.12;8.12;В;9.12;4.08;8.12;8.12;О;9.12;4.08;8.12;8.12;В;9.12;4.08;8.12;8.12;В;9.12;4.08;8.12;8.12;В;9.12;4.08;0;20;45;0;
1837;07;2009;8.12;8.12;В;9.12;4.08;8.12;8.12;О;9.12;4.08;8.12;8.12;В;9.12;4.08;8.12;8.12;В;9.12;4.08;8.12;8.12;В;9.12;4.08;0;20;45;0;
 ..............................

записатся должно:
.......................................
1819;07;2009;8.12;8.12;В;9.12;4.08;8.12;8.12;О;9.12;4.08;8.12;8.12;В;9.12;4.08;8.12;8.12;В;9.12;4.08;8.12;8.12;В;9.12;4.08;0;20;45;0;
1827;07;2009;16.24;16.24;В;18.24;8.16;16.24;16.24;О;18.24;8.16;16.24;16.24;В;18.24;8.16;16.24;16.24;В;18.24;8.16;16.24;16.24;В;18.24;8.16;0;40;90;0;
1837;07;2009;8.12;8.12;В;9.12;4.08;8.12;8.12;О;9.12;4.08;8.12;8.12;В;9.12;4.08;8.12;8.12;В;9.12;4.08;8.12;8.12;В;9.12;4.08;0;20;45;0;
 ..............................

Если в двух одинаковых строках, по одному и тому же элементу, в одной строке буква, а в другой цифра, выдать ошибку мол, проверьте корректность ввода данных, но это ясное дело я сам сделаю, никак не удается написать код до конца, алгоритм у меня видать туповат, когда дохожу до середины все в голове перемешивается и все по новой приходится переписывать smile 

Вообщем имеем файл file.txt в нем строки как показано выше, если инвентарные номера равны в двух и более строках сложить, то что после 3 точки с запятой, если не равны просто оставить без изменений...

Кто поможет с кодом или толковым алгоритмом, получит 3 плюса, а так же мою неимоверную благодарность, запарился уже честно
Выкладывать свой код, не буду(ну только если действительно понадобится), т.к. не хочу чтобы вы машинально повторяли мой путь, быть может он ошибочный smile 
P.S. трейти день пытаюсь сделать smile  smile  smile 


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


Эксперт
****


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

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



многа букв написал..

попробуй выгружать в более человечный формат csv например или xml


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Palladin
Дата 25.5.2009, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Нет и еще раз нет, к сожалению выгрузкой пользуется другая программа, которая работает только с .txt и выгрузка должна быть именно такого формата, в постановке задачи это строго указано, такчто...


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


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Цитата(Palladin @  25.5.2009,  09:34 Найти цитируемый пост)
(пример выгрузки, ну стркоа сверху, и дальше по тексту, написана тут на форуме и кол-во разделителей не соответсвует истинному значению. Кол-во разделителей равна 3+кол-во дней в месяце+4) кол-во денй в месяце в программе хранится в глобальной переменной day_of_month


Palladin, попробуй сам прочитать  smile 
PM MAIL   Вверх
Palladin
Дата 25.5.2009, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ладно, пойду ковырятся, если что придумаете пишите, сейчас буду делать так:
парсить строку, забивать элементы в массив потом суммировать...


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


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Цитата(Palladin @  25.5.2009,  09:34 Найти цитируемый пост)
1827;07;2009;8.12;8.12;В;9.12;4.08;8.12;8.12;О;9.12;4.08;8.12;8.12;В;9.12;4.08;8.12;8.12;В;9.12;4.08;8.12;8.12;В;9.12;4.08;0;20;45;0;
1827;07;2009;8.12;8.12;В;9.12;4.08;8.12;8.12;О;9.12;4.08;8.12;8.12;В;9.12;4.08;8.12;8.12;В;9.12;4.08;8.12;8.12;В;9.12;4.08;0;20;45;0;

что именно суммировать?
PM MAIL   Вверх
Palladin
Дата 25.5.2009, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



2Акелла, ну я то все понимаю=) ок сейчас перепишу какнить...
Вообщем строки что я сдесь в пример привел, взяты не из выгрузки, а я их просто так сказать "от балды" написал, смысл тот же...

Добавлено @ 10:15
вообщем до первой точки с запятой идет инвентарный номер, его не суммируем, потом идет месяц, его тоже не суммируем, потом год его тоже не суммируем, остальное все суммируем, если это возможно, в случае если это не возможно выдать ошибку мол проверьте корректно ли введены данные

Добавлено @ 10:16
суммируем только те строки в которых инвентарные номера идентичны

Это сообщение отредактировал(а) Palladin - 25.5.2009, 10:17


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


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Проблема-то в чём? Не получается складывать?
PM MAIL   Вверх
Palladin
Дата 25.5.2009, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Да замучался просто, последнйи месяц вообще не отдыхаю, уже голова не работает, плюс лень наверное, т.к. после этого куска кода в отпуск... Незнаю, может отупел, вроде все понятно, а начинаю и никак закончить не могу, жесть какаята, первый раз такое...


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


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Может можно всё вставить во временную таблицу, затем суммировать нужные поля с использованием группировки? Может даже без временной таблицы?

Код

select inv_nomer, year1, mounth1, sum(pole1), pole2, sum(pole3)
group by 1, 2, 4

 smile  smile 
PM MAIL   Вверх
Palladin
Дата 25.5.2009, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



SQL так и не освоил+юзаю ADOTable, а так же как тут проверить возможно ли суммирование? если буква+число надо дать ошибку, если число+ число, надо корректно сложить, ибо вот эти числа 8.12 и т.п. эт восемь часов двенадцать минут, т.е. надо минуты еще аккуратно слаживать и т.п. заморочки...


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


Эксперт
***


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

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



Если я правильно понял, то, наверное, надо сделать как-то так (если без БД):
Код
function CountChars(const AStr: String; const AChar: Char): Integer;
begin
  Result := 0;
  for X := 1 to Length(AStr) do
    Result := Result + Ord(AStr[X] = AChar);
end;

var
  Str: TStringList;
  Src: array of array of String;
  Dst: array of array of String; // можно Variant
  S: String;
  X, Y, ZCnt: Integer;
  B1, B2: Boolean;
  V1, V2: Extended; 
begin
  Str := TStringList.Create;
  try
    // загрузили из файла строки
    Str.LoadFromFile('...');

    SetLenth(Src, Str.Count);
    try
      // загоняем данные в массив
      for X := 0 to Str.Count - 1 do
      begin
        // первая строка определяет набор полей, остальные должны ей соответствовать
        if X = 0 then
        begin
          FieldCnt := CountChars(Str[X], ';') + 1;
          if FieldCnt <= 3 then
            raise Exception.Create('В файле слишком мало ; в первой строке.');
        end 
        else
          if FieldCnt <> CountChars(Str[X], ';') + 1 then
            raise Exception.Create('В строке №' + IntToStr(X + 1) + ' число разделителей не соответствует первой строке.');

        // перегоняем строку с ; в набор полей (массив)
        SetLength(Src[X], FieldCnt);
        S := Src[X];
        Y := Pos(';', S);
        Z := 0;
        while Y > 0 do
        begin
          Src[X][Z] := Trim(Copy(S, 1, Y - 1));
          S := Trim(Copy(S, Y + 1, MaxInt));
          Y := Pos(';', S);
          Inc(Z);
        end; 
        Src[X][Z] := S;
      end;

      // сортируем массив (не стал выписывать - сделаете сами)
      SortArray(Src, 0, Str.Count - 1); 

      // суммируем данные      
      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);
    
        // Здесь: Dst - готовые данные

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




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


Опытный
**


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

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



2CodeMonkey ты монстр, сейчас буду проверять... smile 


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


Эксперт
***


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

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



Делал на коленке, без компилятора - так что там, скорее всего, ошибки. Просто демонстрация подхода, как можно сделать.


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


Опытный
**


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

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



Было пару, не объявленных переменных, но эт мелочи, сейчас стопорюсь на этой строке:
Код

S :=Src[X];

ошибка:
Код

[Error] Unit1.pas(2604): Incompatible types: 'String' and 'dynamic array'


В делфи с динамическими массивами не работал, такчто незнаю как исправить...

Добавлено через 9 минут и 31 секунду
И функцию SortArray тож если можешь выложи...
P.S. наглею...


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
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   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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