Вверх ↑
Этот топик читают: Гость
Ответов: 537
Рейтинг: 14
#1: 2019-06-21 18:35:08 ЛС | профиль | цитата
Почему при загрузке .txt файла через GET запрос в StrList и ListBox список строк загружается без перевода строки (все в одну строку), а в Memo нормально? Если скачать файл и сохранить .txt файл, то все открывается нормально с переводом строк. Теперь чтобы получить нормальный список скачанный GET запросом, нужно сначала его загрузить в Memo, а потом с помощью ArrayEnum передать StrList. И не говорите что Memo узкий и автоматом переводит строки, ширина Memo в 2,5 раза шире текста загружаемого списка

Редактировалось 1 раз(а), последний 2019-06-21 18:40:34
карма: 4

0
vip
#1.1контекстная реклама от партнеров
Ответов: 8886
Рейтинг: 823
#2: 2019-06-21 19:06:30 ЛС | профиль | цитата
1.
Sersey писал(а):
Если скачать файл и сохранить .txt файл, то все открывается нормально

2.
Sersey писал(а):
а в Memo нормально

3.
Sersey писал(а):
нужно сначала его загрузить в Memo, а потом с помощью ArrayEnum передать StrList.

Ваша цель непонятна:
если хочу сохранить файл, действую по №1;
если хочу просто посмотреть, действую по №2;
если хочу сначала посмотреть и потом сохранить, таки по №2.
Зачем этот файл грузить (передавать) в StrList
карма: 19

0
Ответов: 537
Рейтинг: 14
#3: 2019-06-21 22:15:21 ЛС | профиль | цитата
Загружаю список прокси с помощью HTTPClient и не сохраняя файл нужно загрузить его в StrList, так вот StrList загруженные данные понимает как одна строка, а мне нужно получить первый прокси, второй и т.д. пришлось ставить костыль Memo, так как в него загруженные данные попадают в нормальном виде с переводом строк, а потом уже переводить построчно в StrList, так как с ним работать удобнее. Стоп, возможно нужно загружать данные через точку doText, загружал через doAdd

Редактировалось 1 раз(а), последний 2019-06-21 22:18:32
карма: 4

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#4: 2019-06-21 22:21:58 ЛС | профиль | цитата
Sersey писал(а):
так вот StrList загруженные данные понимает как одна строка

А как это обнаружено, ведь StrList не визуальный контрол?
Кстати, а на какую входную точку подается полученный текст?
карма: 22

0
Ответов: 537
Рейтинг: 14
#5: 2019-06-21 22:38:24 ЛС | профиль | цитата
Я ведь выше писал, на точку doText в StrList и на эту же точку в Memo текст скачанный поступает, а обнаружил, когда получил число строк в списке, потом вывел эту одну строку, там все слитно, все в кучу

--- Добавлено в 2019-06-21 22:40:22

Так почему Memo понимает структуру, а StrList и ListBox все в одну строку ставят?

--- Добавлено в 2019-06-21 22:48:36

Add(MainForm,2953706,77,112)
{
Width=582
Height=362
}
Add(HTTPClient,12964559,196,112)
{
URL="https://api.best-proxies.ru/proxylist.txt?key=5dc8a983570b2ac7ba0383b23a90da10&limit=10&level=1,2&type=http"
link(onFinish,42027:doEvent1,[])
}
Add(Button,12055875,133,112)
{
Left=10
Top=10
Caption="StrList"
link(onClick,12964559:doLoadString,[])
}
Add(StrList,14957089,287,119)
{
}
Add(Memo,7446448,462,168)
{
Left=10
Top=45
Width=330
Height=235
}
Add(Hub,42027,245,119)
{
OutCount=4
link(onEvent1,14957089:doAdd,[])
link(onEvent2,14324423:doStrCat,[(273,132)(273,174)])
link(onEvent3,12110325:doData,[(273,139)(273,223)])
link(onEvent4,13312793:doAdd,[(273,146)(273,272)])
}
Add(DoData,12110325,287,217)
{
link(onEventData,7636497:doEvent2,[(373,223)(373,181)])
link(Data,14957089:Text,[])
}
Add(Hub,7636497,427,168)
{
InCount=2
OutCount=1
link(onEvent1,7446448:doAdd,[])
}
Add(StrCat,14324423,287,168)
{
Str1="Число строк "
link(onStrCat,7636497:doEvent1,[])
link(Str2,14957089:Count,[])
}
Add(ListBox,13312793,287,266)
{
Left=350
Top=50
Width=210
Height=230
}


Редактировалось 3 раз(а), последний 2019-06-21 22:55:52
карма: 4

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#6: 2019-06-21 23:08:41 ЛС | профиль | цитата
Sersey писал(а):
Я ведь выше писал, на точку doText в StrList

Если ты внимательно перечитаешь свой стартовый пост, то в упор не найдешь там упоминание точки doText. Упоминание про эту точку появилось уже в качестве предположения дальше. Но это не важно, ты правильно предположил.
Sersey писал(а):
Так почему Memo понимает структуру

Потому, что Memo это системный визуальный контрол, а StrList вообще не контрол, а придуманный Кладовым не визуальный класс. А вот ListBox, хоть и системный контрол, но на парсирование текста по разделителям не рассчитан. ЕМНИП, то такой функцией парсирования обладает еще и RichEdit.
И в схеме, кстати, текст подается именно на doAdd. Memo может разбивать на строки текст, поданный на doAdd, а вот StrList так делать не умеет, даже, если внутри стоят разделители строк, у него подавать текст надо именно на точку doText. Почему, собственно, я и задал тебе этот вопрос.

Редактировалось 7 раз(а), последний 2019-06-21 23:20:45
карма: 22

0
Ответов: 537
Рейтинг: 14
#7: 2019-06-22 00:58:12 ЛС | профиль | цитата
Предположим нужно загрузить из инета файл со списком строк, а этих строк например 100 000, кроме как сначала сохранить этот файл, а потом открыть в StrList, я не знаю решения, по тому, что в Memo, много строк не загрузит, он не рассчитан, а StrList пожалуйста. Так зачем такие ограничения, что StrList не понимает разделители и из этого городить нужно трех этажную схему
карма: 4

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#8: 2019-06-22 02:12:49 ЛС | профиль | цитата
Sersey писал(а):
Так зачем такие ограничения

Ты об этом разработчика библиотеки спроси
Sersey писал(а):
что StrList не понимает разделители

Пр doAdd не понимает, по doText понимает.
Я все понять не могу -- кто мешает подавать на doText, что от этого меняется? Ну не нравится doText, используй возможность внутреннего накопителя StrList-a -- точка doAppendText.
карма: 22

0
Ответов: 537
Рейтинг: 14
#9: 2019-06-22 07:07:57 ЛС | профиль | цитата
Sersey писал(а):
Стоп, возможно нужно загружать данные через точку doText, загружал через doAdd

Я и сам понял и написал,
nesco писал(а):
кто мешает подавать на doText

карма: 4

0
9
Сообщение
...
Прикрепленные файлы
(файлы не залиты)