![]() |
|
#1
|
|||
|
|||
![]() Здравствуйте, в общем вопрос такой, как сделать чтобы программа загружала список из текстового файла с разделителем и брала данные оттуда. Помогите, что-то никак не могу сам понять. В этом варианте она берет данные из окон sEdit. Вот код если что:
Код:
Последний раз редактировалось Admin, 15.04.2015 в 19:15. |
#2
|
|||
|
|||
![]() Ну вроде как база загружается, количество строк в Label пишет, но когда пытаюсь вывести текст хотя бы в Memo, при компиляции выдаёт ошибку Project Project1.exe raised exception class EStringListError with message 'List index out of bounds'
Код:
Последний раз редактировалось AlexBerg001, 15.04.2015 в 20:22. |
#3
|
||||
|
||||
![]() Похоже, "мусорная" переменная Acc, нет её инициализации
Код:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 16.04.2015 в 12:10. Причина: Как обычно - ляп |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
AlexBerg001 (16.04.2015)
|
#4
|
|||
|
|||
![]() В общем да, программа начала работать с первой строкой списка, но как сделать, чтобы она переходила на следующую? Сейчас вид получился вот такой:
Код:
|
#5
|
||||
|
||||
![]() Так и думал, что будет типичное продолжение вопроса
![]() Код:
З.Ы. Только Acc:=0; уберите из основного блока Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 16.04.2015 в 12:13. |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
AlexBerg001 (16.04.2015)
|
#6
|
|||
|
|||
![]() Спасибо за подсказки, да всё стало работать)))
Блин, поторопился с выводами, обрабатывает буквально несколько строк и виснет((( Всё-таки надо наверное как-нибудь поток создавать и в него это всё помещать. Я создал поток, переместил type и procedure на первую форму, добавил constructor и в procedure переместил тот код, который выполнялся по нажатию кнопки Старт, подобавлял перед выражениями TForm2. Но проект всё-равно не хочет компилироваться, пишет что ему неизвестен IdHTTP и ещё гора ошибок. Как сделать правильно-то? В общем без потока код выглядит вот так: Код:
Последний раз редактировалось AlexBerg001, 16.04.2015 в 16:15. |
#7
|
||||
|
||||
![]() Для начала желательно провести оптимизацию, сократить код, напр. зачем несколько раз явно проверять вид разделителя (':' or ';'), в переменной del он уже представлен, значит достаточно сделать так
всего разок Код:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#8
|
|||
|
|||
![]() C разделителем разобрался - спасибо. А вот с Memo до конца не понял как правильно сделать, я написал вот так, но мне кажется что это ничего не поменяло:
Код:
Последний раз редактировалось AlexBerg001, 16.04.2015 в 19:46. |
#9
|
||||
|
||||
![]() Я так понимаю, показ в мемо\лейбле результата разбора строки - это своеобразный индикатор хода работы, сортировка на валидный-не валидный акк? Список тогда здесь не подходит, нужно добавить в "тормозном" месте Application.ProcessMessage, чтоб не зависало всё сразу и надолго
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#10
|
|||
|
|||
![]() Ну да, вы всё правильно поняли, так а как узнать где тормозное место то?
|
#11
|
||||
|
||||
![]() Как обычно, отладкой
![]() Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#12
|
|||
|
|||
![]() В общем добавил строку Application.ProcessMessages; непосредственно перед каждым get-запросом: 20 строк прошло, дальше зависает и в debug пишет Thread Exit и выпадает окно socket 10060. Всё время с момента нажатия кнопки Старт окно программы подвисает и нельзя его ни двигать, ни скроллбар крутить
Последний раз редактировалось AlexBerg001, 16.04.2015 в 20:04. |
#13
|
||||
|
||||
![]() Покажите пжлст кусман подгружаемого текстового файла, его структуру - попробую вам "не интернетную" матчасть пересобрать
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#14
|
|||
|
|||
![]() В смысле файл Accounts, который я загружаю правильно я вас понял?
Последний раз редактировалось AlexBerg001, 16.04.2015 в 22:14. |
#15
|
||||
|
||||
![]() <DELETED>...что было нужно, я увидел и потопал в сборочный цех
З.Ы. Сплошные двоеточия, а точка с запятой что разделяет, непонятки Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 16.04.2015 в 22:15. |