![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
старый добрый HTML [D7, WinXP]
lordalexander © (2011-04-04 22:49:00)Здравствуйте уважаемый программисты
Пытаюсь сохранить код страницы сайта в тхт файл. Но, он отображается в одну строку, а не в столбик тегами.
Код страница вытаскиваю следующим образом
Memo1.Lines.Add(IdHTTP1.Get(' http://www.delphimaster.ru')) как в конце тега поставить Enter
sniknik (2011-04-06 23:00:00) [1]сказка про белого бычка
lordalexander (2011-04-06 22:42:00) [2]Через TRichEdit не всегда каждый тег на своей строке встречаться 2-5 тегов на одной строке как их расставить по строчкам?
sniknik (2011-04-06 07:55:00) [3]не о коварстве, а о необходимости говорить понятно, чтобы не нужно было строить домыслов для понимания чего же автор делает, что у него происходит и в итоге чего он хочет. в конце концов это же ему нужно, он спрашивает...
Sapersky (2011-04-06 01:26:00) [4]тогда просто заменить TMemo на TRichEdit, и все наладится.
Ну вот, такая тирада была в [22] о злобном коварстве автора, а всё мимо, даже жалко :)
Memo.Lines.Text, кстати, нестандартные сепараторы тоже лечит, так что с кодом я угадал.
Проверить idHTTP не мог т.к. Инди не было под рукой, а насчёт Memo.Lines.Add - поленился, с нормальными сепараторами оно на самом деле работает. Ну так написал же в [12] - "возможно".
sniknik (2011-04-05 23:55:00) [5]> скорее всего знак переноса строки по-юниксовому, одним символом.
точно.
тогда просто заменить TMemo на TRichEdit, и все наладится.
sniknik (2011-04-05 23:46:00) [6]> 3) Вывод: исходное форматирование убито кривым кодом сохранения.
"код" можно проверить. он приведен в [0]
и сделать другой вывод на этом основании, - что он врет.
а можно почитать дальше, например [2]
> мне нужно автоматически т.к таких HTML очень много
и сделать еще один вывод, - что форматирования нет в этих многих HTML, а ссылка в [0] на дельфимастер приведена для примера...
тут конечно возникает вопрос, а че же автор не проверил свой же пример и не сказал об этом в вопросе. типа мол, вот тут работает. а где надо нет, и пример вот тут такое форматирование, а тут вот такая одна строка... но вопрос этот без ответа. модно списать на врожденную... ну скажем застенчивость автора. стесняется может человек говорить полно и понятно, предпочитает "тупить". ну, да это его проблема.
а вот в чем проблема отвечающего который имеет телепатор и не видит очевидного, и не проверяет то, что советует?
antonn (2011-04-05 23:35:00) [7]скорее всего знак переноса строки по-юниксовому, одним символом.
Sapersky (2011-04-05 23:08:00) [8]1) Он пробовал на delphimaster.ru - в результате получается весь файл одной строкой.
2) У меня delphimaster.ru сохраняется с форматированием, и вы говорите, что так и надо.
3) Вывод: исходное форматирование убито кривым кодом сохранения.
4) Результат: желание странного в виде ручной разбивки по тегам, которое, полагаю, ему не нужно на самом деле.
В общем, мой телепатор так видит :) Может где-то и ошибается, но пусть уж тогда автор, если появится, уточняет.
sniknik (2011-04-05 22:22:00) [9]у него -
> [0] Но, он отображается в одну строку, а не в столбик тегами.
"как есть" строка. а "столбик тегами" это "ручное" форматирование (можно и генератором так писать, собственно данный форум, динамические страницы, делаются скриптами на перле... форматирование присутствует).
Sapersky (2011-04-05 21:49:00) [10]нет, это "более-менее человеческое форматирование". как есть.
Ну я так понял, автору нужно скорее "как есть", чем переформатирование HTML под свои вкусы.
sniknik (2011-04-05 20:59:00) [11]> вроде более-менее человеческое форматирование, или это браузер?
нет, это "более-менее человеческое форматирование". как есть.
> обычно форматирование имелось, не весь текст в одну строку.
обычно оно и есть. а весь текст в одну строку это чем то "тупым" сгенерированно. (в кавычках т.к. чаще всего оно и не нужно, не люди код читают)
Sapersky (2011-04-05 20:36:00) [12]Пардон, [14] было в дополнение к [12].
дело в том, что пофигу, если исходный текст не форматирован.
Сохранил Оперой http://www.delphimaster.ru- вроде более-менее человеческое форматирование, или это браузер?
И когда работал в своё время с HTTP через Synapse - обычно форматирование имелось, не весь текст в одну строку.
А что автор хочет каждый тэг с новой строки - ну пусть посмотрит для начала на исходное форматирование, может его устроит. Нормальные "блокноты" с подсветкой тэгов (напр. AkelPad) помогают, опять же.
sniknik (2011-04-05 20:35:00) [13]стрим, волшебными свойствами авто форматирования тоже не обладает... хотя, да, получение в стрим, метод есть, с тем же названием (перекрыт). избавлю от поисков. но, НЕ ПОМОЖЕТ.
Sapersky (2011-04-05 20:22:00) [14]Или поискать у IdHTTP1 метод для получения HTML сразу в TStream (TFileStream), у Synapse вон есть.
sniknik (2011-04-05 20:20:00) [15]> дело в том, что Memo1.Lines.Add добавляет весь текст как одну строку.
> Попробуй Memo1.Lines.Text := IdHTTP1.Get();
дело в том, что пофигу, если исходный текст не форматирован.
> чтоб каждый тег был на одной строке
чем не подходит предложенный вариант ([7])? будет именно так, каждый тег на своей строчке... неважно открывающий он или закрывающий. есть вложения или нет.
Sapersky (2011-04-05 20:10:00) [16]Возможно, дело в том, что Memo1.Lines.Add добавляет весь текст как одну строку.
Попробуй Memo1.Lines.Text := IdHTTP1.Get();
Если требуется напрямую в файл - можно вместо Memo использовать TStringList, или писать строку в файл через TFileStream.
lordalexander (2011-04-05 19:38:00) [17]Я получаю HTML код в одну строку вставляю его в мемо затем нужно после каждого тега здвигать на строку чтоб каждый тек на одной строчки был и после этого сохранить в ТХТ файл вопрос в том как это можно сделать сразу на
примую в ТХТ файл чтоб каждый тег был на одной строке
sniknik (2011-04-05 09:29:00) [18]> а уровень вложенности несколькими пробелами в начале не будем форматировать?
вообще не будем! в условии этого нет.
+
самое простое не есть самое лучшее...
лучше всего с этим справится человек, но это не просто.
++
если в его html-ях форматирования нет, значит они сгенерированы чем то... и значит не продполагалось для чтения кода человеком... значит не нужно оно там... с чего я и начал.
> а если там еще и клиентский js
так он вроде не то что получится хочет в форматированном виде, а сам исходный код.
Медвежонок Пятачок (2011-04-05 09:13:00) [19]да нет, не прокатит все это.
<div id="one">one</div><div id="two">one</div>
+ css лежащий где-то там
и что и как здесь заменить?
а если там еще и клиентский js, то вообще мрак.
brother (2011-04-05 08:35:00) [20]> заменить все '>' на '>'#13#10.
а уровень вложенности несколькими пробелами в начале не будем форматировать?