Вверх ↑
Этот топик читают: Гость
Ответов: 110
Рейтинг: 9
#1: 2010-03-24 17:40:07 ЛС | профиль | цитата
Есть задача: из HTML файлов нужно достать в Win приложение данные. Пример таблицы в аттаче.
Таблиц много, данные постоянно меняются. Может кто-то предложит наиболее простой метод?
Перебирать "вручную" не предлагать - есть таблица на 511 строк и 6 столбцов - более 3000 элементов.

Если коротко и прямо:
Выбрать одну из таблиц на странице и перевести её в набор строк с разделителем.
карма: 0

0
файлы: 11.zip [411B] [311]
Администрация
Ответов: 15295
Рейтинг: 1519
#2: 2010-03-24 17:43:51 ЛС | профиль | цитата
как правило такие вещи проще всего делаются с помощью BlockFind
карма: 27
0
Ответов: 110
Рейтинг: 9
#3: 2010-03-24 17:50:36 ЛС | профиль | цитата
BlockFind умеет удалать что-то по маске оставляя при этом весь остальной текст?
как, к примеру, из аттача удалить все тэги font (открывающий, закрывающий с разным кол-вом доп. свойств)?
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#4: 2010-03-24 17:52:18 ЛС | профиль | цитата
StartBlock = <font
EndBlock = >
Delete = True
карма: 27
0
Ответов: 5446
Рейтинг: 323
#5: 2010-03-24 17:55:17 ЛС | профиль | цитата
EvgIg, да. Например так:
Add(BlockFind,9031056,252,175)
{
IncludeBlock=1
Delete=0
StartBlock="<font"
EndBlock=">"
}
карма: 1

0
Ответов: 110
Рейтинг: 9
#6: 2010-03-24 17:58:50 ЛС | профиль | цитата
code_17494.txt

остается только это:
size=2
size=2

------------ Дoбавленo в 18.43:
получается что он удаляет не снаружи а внутри
карма: 0

0
файлы: 1code_17494.txt [860B] [479]
Ответов: 3851
Рейтинг: 159
#7: 2010-03-24 21:44:50 ЛС | профиль | цитата

EvgIg, если структура страницы фиксирована, то вынуть данные из 1.zip не просто, а очень просто. тебе даже сказали чем это можно сделать. изучай этот элемент.
если что - спрашивай ..
карма: 0
начавший
0
Ответов: 5446
Рейтинг: 323
#8: 2010-03-24 22:50:38 ЛС | профиль | цитата
EvgIg, вот как надо было (читай описания к точкам):
code_17499.txt
карма: 1

0
файлы: 1code_17499.txt [713B] [220]
Разработчик
Ответов: 26163
Рейтинг: 2127
#9: 2010-03-24 22:55:34 ЛС | профиль | цитата
Че вы бедный font заюзали Нет, что бы челу схему выложить, а то он еще неделю думать будет. Там делов-то со схемой...
карма: 22

0
Ответов: 4641
Рейтинг: 334
#10: 2010-03-24 23:06:40 ЛС | профиль | цитата
nesco писал(а):
Там делов-то со схемой...

делов то мало....если структура постоянная....
[offtop]я кстати говорил про парсер...недавно....уже второй мучается..ну да ладно[/offtop]
nesco, а нельзя как нибудь средствами компонента WebBrowser сделать точку...."содержит текст со станицы".... ведь например стандартный ie сохраняет как то в текст .....может затерялась там функция какая то ?
но лучше конечно парсер, что бы не париться...

EvgIg, вот тебе для изучения....но Tad спец по парсингу...может чего более приличное подскажет

Add(MainForm,2953706,84,112)
{
link(onCreate,3181699:doSearch,[])
}
Add(StrList,4026286,161,56)
{
Strings=#20:<tr bgcolor=#f0f0f0>|59:<th align=left bgcolor=#c0c0c0><font size=2>Hlin Scale</th>|47:<td align=center><font size=2>25323</font></td>|47:<td align=center><font size=2>23357</font></td>|5:</tr>|20:<tr bgcolor=#f0f0f0>|69:<th align=left bgcolor=#c0c0c0><font size=2>Loop Attenuation(dB)</th>|45:<td align=center><font size=2>3.3</font></td>|45:<td align=center><font size=2>5.8</font></td>|5:</tr>|20:<tr bgcolor=#f0f0f0>|71:<th align=left bgcolor=#c0c0c0><font size=2>Signal Attenuation(dB)</th>|45:<td align=center><font size=2>3.3</font></td>|45:<td align=center><font size=2>4.8</font></td>|5:</tr>|20:<tr bgcolor=#f0f0f0>|63:<th align=left bgcolor=#c0c0c0><font size=2>SNR Margin(dB)</th>|45:<td align=center><font size=2>6.4</font></td>|45:<td align=center><font size=2>6.0</font></td>|5:</tr>|20:<tr bgcolor=#f0f0f0>|70:<th align=left bgcolor=#c0c0c0><font size=2>Attainable Rate(Kbps)</th>|47:<td align=center><font size=2>22188</font></td>|46:<td align=center><font size=2>1104</font></td>|5:</tr>|20:<tr bgcolor=#f0f0f0>|66:<th align=left bgcolor=#c0c0c0><font size=2>Output Power(dBm)</th>|46:<td align=center><font size=2>10.9</font></td>|45:<td align=center><font size=2>5.3</font></td>|5:</tr>|8:</table>|
}
Add(BlockFind,15946228,259,126)
{
IncludeBlock=1
StartBlock="<th align=left bgcolor=#c0c0c0><font size=2>"
EndBlock="</th>"
link(onSearch,8012193:doValue,[])
}
Add(BlockFind,3254349,259,175)
{
IncludeBlock=1
StartBlock="<td align=center><font size=2>"
EndBlock="</font></td>"
link(onSearch,9159751:doStrCatDlm,[])
link(onEndSearch,651456:doEvent1,[])
}
Add(BlockFind,3181699,161,126)
{
IncludeBlock=1
StartBlock="<tr bgcolor=#f0f0f0>"
EndBlock="</tr>"
link(onSearch,11873132:doEvent1,[])
link(Text,4026286:Text,[])
}
Add(Hub,11873132,217,126)
{
link(onEvent1,15946228:doSearch,[])
link(onEvent2,3254349:doSearch,[(245,139)(245,181)])
}
Add(FormatStr,7307759,336,245)
{
Mask="%1;%2"
link(onFString,882428:doAdd,[])
link(Str1,8012193:Value,[])
link(Str2,8306487:Value,[(349,226)(454,226)])
}
Add(StringTable,882428,399,245)
{
Left=55
Top=25
Width=290
Height=210
Columns=#1:1|1:2|1:3|
}
Add(Memory,8012193,336,126)
{
}
Add(StrCatDelim,9159751,343,175)
{
Delimiter=";"
Point(doClear)
link(onStrCatDlm,15677434:doDelete,[])
link(Str1,9159751:Result,[(349,163)(364,163)(364,220)(364,220)(349,220)])
}
Add(Hub,651456,301,182)
{
link(onEvent1,7307759:doString,[(325,188)(325,251)])
link(onEvent2,9159751:doClear,[(329,195)(329,188)])
}
Add(Delete,15677434,399,175)
{
Count=1
link(onDelete,8306487:doValue,[])
}
Add(Memory,8306487,448,175)
{
}


карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 110
Рейтинг: 9
#11: 2010-03-25 00:01:01 ЛС | профиль | цитата
Что-то переклинило с этим BlockFind'ом
Завтра отпишу свои мысли по нему (половину кода уже переписал... )
карма: 0

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