Вверх ↑
Этот топик читают: Гость
Ответов: 817
Рейтинг: 52
#1: 2009-10-05 10:15:01 ЛС | профиль | цитата
Приятного времени суток господа!

Решил загрузить в таблицу ООООЧЕНЬ МНОГО строк, а не получается!
Все дело в том, что StringTable не воспринимает более 6469 строк
Как только пытаюсь добавить 6470 строку вся программа вылетает молча.
Как быть в такой ситуции?
карма: 1

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#2: 2009-10-05 10:23:28 ЛС | профиль | цитата
-= DriveR =- писал(а):
Как быть в такой ситуции?

Быть такого не может, не в эту, а в расширенную таблицу, а они одного класса ListView, я загонял 50000 строк без проблем
------------ Дoбавленo в 10.24:
Хорошо, а где пример, собранный из десятка элементов, который доказывает, что проблема именно в ограничении строк
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#3: 2009-10-05 10:44:02 ЛС | профиль | цитата
nesco писал(а):
а где пример,
а заодно и сколько у тебя свободной оперативки?
------------ Дoбавленo в 10.46:
У меня есть файлик на 800 000 строк (восемьсот тысяч) 82 Mb. Грузится без проблем и именно в StringTable - 2 минуты
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 817
Рейтинг: 52
#4: 2009-10-05 10:50:11 ЛС | профиль | цитата
nesco писал(а):
Хорошо, а где пример

Ага, вот он

Add(MainForm,2953706,21,105)
{
Width=799
Height=314
}
Add(Button,2507840,56,203)
{
Left=5
Top=250
Width=85
Caption="Искать"
link(onClick,5449909:doStart,[])
}
Add(FileStream,14688063,266,203)
{
FileName="Squid_Log_Parser.txt"
link(FileName,13235954:Value,[])
}
Add(DataToFile,7915256,266,266)
{
Type=7
Point(doPosition)
Point(Position)
link(onGet,8591642:doAdd,[])
link(Stream,14688063:Stream,[])
}
Add(Hub,245396,189,224)
{
InCount=2
OutCount=3
link(onEvent1,818546:In,[])
link(onEvent3,4562791:In,[])
}
Add(Repeat,13775081,273,315)
{
Type=1
link(onRepeat,7052098:In,[])
link(Op1,7915256:Position,[])
link(Op2,14688063:Size,[(286,275)(279,275)])
}
Add(Hub,6626852,140,203)
{
link(onEvent1,14688063:doOpen,[])
link(onEvent2,245396:doEvent1,[(168,216)(168,230)])
}
Add(LineBreak,9236123,224,273)
{
Caption="1"
link(Out,7915256:doGet,[])
Primary=[818546,7,-49]
}
Add(LineBreak,9045007,231,315)
{
Caption="5"
link(Out,13775081:doRepeat,[])
Primary=[4562791,-14,-77]
}
Add(LineBreak,16612203,147,231)
{
link(Out,245396:doEvent2,[])
Primary=[7052098,168,84]
}
Add(Memory,13235954,266,154)
{
Default=String(C:Documents and SettingsuserРабочий столHiAsmSQUID LoglogSquid_Log_Parser.log)
}
Add(Thread,5449909,98,203)
{
Delay=1
FastStop=0
link(onExec,6626852:doEvent1,[])
}
Add(StringTableMT,8591642,406,266)
{
Left=5
Top=5
Width=780
Height=240
Columns=#7:Дата=70|5:IP=90|13:Адрес URL=300|15:Скачано байт=90|11:Запросов=70|
StrDelimiter=" "
IconsCheck=[]
MiscIcons=[]
Icons=[]
Point(onChange)
}
Add(StringTable,9368873,406,329)
{
Left=405
Top=395
}
Add(InfoTip,10804899,350,210)
{
Info=#36:Проблемы вот с этими двумя таблицами|
Width=169
Height=172
}


Tad писал(а):
а заодно и сколько у тебя свободной оперативки?

Общий объем 1Гб
Свободно где-то 600 Мб
Файлик который хочу загрузить размером 78 348 кб
Tad писал(а):
У меня есть файлик на 800 000 строк (восемьсот тысяч) 82 Mb грузится без проблем и именно в StringTable - 2 минуты

Блин, может я не корректно схемку нарисовал
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#5: 2009-10-05 10:54:01 ЛС | профиль | цитата
Tad писал(а):
У меня есть файлик на 800 000 строк (восемьсот тысяч) 82 Mb. Грузится без проблем и именно в StringTable - 2 минуты

Куда-то ссылка на твой пример ведет как Иван Сусанин
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 817
Рейтинг: 52
#6: 2009-10-05 10:55:26 ЛС | профиль | цитата
Tad писал(а):
Куда-то ссылка на твой пример ведет как Иван Сусанин

эээээ...
не понял
------------ Дoбавленo в 10.56:
ааааааа
всмысле нету примера ?
Это как?
Я его вижу
Давай еще раз тут попробую выложить

Add(MainForm,2953706,21,105)
{
Width=799
Height=314
}
Add(Button,2507840,56,203)
{
Left=5
Top=250
Width=85
Caption="Искать"
link(onClick,5449909:doStart,[])
}
Add(FileStream,14688063,266,203)
{
FileName="Squid_Log_Parser.txt"
link(FileName,13235954:Value,[])
}
Add(DataToFile,7915256,266,266)
{
Type=7
Point(doPosition)
Point(Position)
link(onGet,8591642:doAdd,[])
link(Stream,14688063:Stream,[])
}
Add(Hub,245396,189,224)
{
InCount=2
OutCount=3
link(onEvent1,818546:In,[])
link(onEvent3,4562791:In,[])
}
Add(Repeat,13775081,273,315)
{
Type=1
link(onRepeat,7052098:In,[])
link(Op1,7915256:Position,[])
link(Op2,14688063:Size,[(286,275)(279,275)])
}
Add(Hub,6626852,140,203)
{
link(onEvent1,14688063:doOpen,[])
link(onEvent2,245396:doEvent1,[(168,216)(168,230)])
}
Add(LineBreak,9236123,224,273)
{
Caption="1"
link(Out,7915256:doGet,[])
Primary=[818546,7,-49]
}
Add(LineBreak,9045007,231,315)
{
Caption="5"
link(Out,13775081:doRepeat,[])
Primary=[4562791,-14,-77]
}
Add(LineBreak,16612203,147,231)
{
link(Out,245396:doEvent2,[])
Primary=[7052098,168,84]
}
Add(Memory,13235954,266,154)
{
Default=String(C:Documents and SettingsuserРабочий столHiAsmSQUID LoglogSquid_Log_Parser.log)
}
Add(Thread,5449909,98,203)
{
Delay=1
FastStop=0
link(onExec,6626852:doEvent1,[])
}
Add(StringTableMT,8591642,406,266)
{
Left=5
Top=5
Width=780
Height=240
Columns=#7:Дата=70|5:IP=90|13:Адрес URL=300|15:Скачано байт=90|11:Запросов=70|
StrDelimiter=" "
IconsCheck=[]
MiscIcons=[]
Icons=[]
Point(onChange)
}
Add(StringTable,9368873,406,329)
{
Left=405
Top=395
}
Add(InfoTip,10804899,350,210)
{
Info=#36:Проблемы вот с этими двумя таблицами|
Width=169
Height=172
}


карма: 1

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#7: 2009-10-05 11:11:16 ЛС | профиль | цитата
Что-то мне подсказывает, что проблема здесь не в таблице, а чтении файла
карма: 22

0
Ответов: 817
Рейтинг: 52
#8: 2009-10-05 11:18:12 ЛС | профиль | цитата
nesco писал(а):
Что-то мне подсказывает, что проблема здесь не в таблице, а чтении файла


nesco, это же твой пример из вопроса о том как работать с большим файлом не загружая его в память

карма: 1

0
Ответов: 4641
Рейтинг: 334
#9: 2009-10-05 11:31:09 ЛС | профиль | цитата
-= DriveR =- писал(а):
6469 строк

покажи сюда эту строчку, возможно там косяк....закрался какой нибудь
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 817
Рейтинг: 52
#10: 2009-10-05 11:33:53 ЛС | профиль | цитата
Ravilr писал(а):
покажи сюда эту строчку, возможно там косяк....закрался какой нибудь

Не, строка нормальная
code_15130.txt
карма: 1

0
файлы: 1code_15130.txt [276B] [188]
Ответов: 16884
Рейтинг: 1239
#11: 2009-10-05 11:36:26 ЛС | профиль | цитата
-= DriveR =-, чесно, то нифига не понял. Ты же его все равно загружаешь в таблицу (память).
Зачем этот сыр-бор ?
Подал на StringTable на doLoad и 803 000 строк загрузилось.
Если хочешь на лету что-то отсеивать, то при чтении построчно (режим dtLines) отсеивай по маске а потом на doAdd.
Нафига сомпонент Repeat ?
У тебя бардак в левой части схемы, а не в таблицах.
Конкретно скажи - чё те надо ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26305
Рейтинг: 2146
#12: 2009-10-05 11:41:07 ЛС | профиль | цитата
-= DriveR =- писал(а):
это же твой пример из вопроса о том как работать с большим файлом не загружая его в память

Млин, но я же его не для таблицы делал, а для перекодирования из файла в файл
карма: 22

0
Ответов: 817
Рейтинг: 52
#13: 2009-10-05 11:48:49 ЛС | профиль | цитата
Tad писал(а):
Если хочешь на лету что-то отсеивать, то при чтении построчно (режим dtLines) отсеивай по маске а потом на doAdd.

Так-так, вот это немного поподробнее
----------------------
Ага, разобрался, сейчас попробую.
Попробовал, и понял что без Repeat загружается только одна строка
Tad писал(а):
Нафига сомпонент Repeat ?

Это своеобразный цикл на чтение следующей строки и проверка на окончание читаемого файла
(Не уверен что написал правильным языком)

Tad писал(а):
Конкретно скажи - чё те надо ?

Конкретно
1. Есть файлик (его три строки есть чуть выше) который надо разбить на части по Delimiter (пробел)
2. Третью часть (URL) тоже надо разбить по Delimiter (/) и работать с левой частью (s1.ikariam.ru)
3. Вот эту самую левую часть (s1.ikariam.ru) надо загрузить и посчитать уникальность строк
пункт 1 сделал
пункт 2 Как раз с ним сейчас вопросы
пункт 3 пока не дошел

nesco писал(а):
Млин, но я же его не для таблицы делал, а для перекодирования из файла в файл

Ага, а я его под себя переделал чуть-чуть и видимо не правильно
Ну не програмист я, не програмист
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#14: 2009-10-05 12:07:49 ЛС | профиль | цитата
code_15131.txt
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_15131.txt [1.4KB] [173]
Ответов: 16884
Рейтинг: 1239
#15: 2009-10-05 12:18:31 ЛС | профиль | цитата
На
code_15132.txt
------------ Дoбавленo в 12.21:
Так?
В StringTable задай свои колонки и делимитер.
А можешь и вообше StringTable заменить на


Add(Math,2096484,441,434)
{
Op2=1
ResultType=0
link(Op1,2096484:Result,[(447,422)(435,422)(435,478)(447,478)])
}
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_15132.txt [2KB] [157]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)