Добрый день!
Прочитал похожие темы, но они решают вопрос для конкретного случая. Мне бы хотелось получить универсальный парсер, который создаст массив нужного размера.
Имеется код в строковой переменной. В нем интересующая часть:
Необходимо сначала по
определить, что столбцов 3, и присвоить им названия согласно данным (Дата, Стоимость пая, руб. и т.д.)
Далее посчитать кол-во
Это будет кол-во строк. Таким образом, массив задать размером [кол-во строк +1(нулевая строка с названиями столбцов)][3]
Далее необходимо заполнить массив элементами
причем последняя запись имеет вид
Просто регулярными выражениями возникают нестыковки, по-скольку внешне данные оформлены похоже друг на друга, а имеет значение их расположение.
Пока я пишу скрипт, который по сути заносит всю эту строку в массив и обрабатываю. Конечно, это долго, но прикрутить рег.выражения не хватает навыков.
Помогите, пожалуйста, решить задачу.
Повторюсь, что столбцов может быть и не 3 как тут.. Буду признателен за решения или какие-нибудь блоки, которые хоть как то облегчат скрипт при помощи рег. выражений.
Прочитал похожие темы, но они решают вопрос для конкретного случая. Мне бы хотелось получить универсальный парсер, который создаст массив нужного размера.
Имеется код в строковой переменной. В нем интересующая часть:
</HEAD>
<BODY onload=excel()>
<TABLE style="WIDTH: 450pt; TABLE-LAYOUT: fixed; mso-displayed-decimal-separator: '.'; mso-displayed-thousand-separator: ' '" id=excelTable border=0 cellSpacing=0 cellPadding=0>
<COLGROUP>
<COL></COL>
<COL align=right></COL>
<COL align=right></COL>
<THEAD>
<TR id=tHeader>
<TD style="WHITE-SPACE: nowrap" align=center>Дата</TD>
<TD style="WHITE-SPACE: nowrap" align=center>Стоимость пая, руб.</TD>
<TD style="WHITE-SPACE: nowrap" align=center>Стоимость ЧА, руб.</TD></TR></THEAD>
<TBODY>
<TR class=even>
<TD>01.03.2012</TD>
<TD x:num="852.11">852.11</TD>
<TD x:num="695369.57">695 369.57</TD></TR>
<TR class=even>
<TD>29.02.2012</TD>
<TD x:num="854.6">854.6</TD>
<TD x:num="697401.98">697 401.98</TD></TR>
<TR class=even>
<TD>28.02.2012</TD>
<TD x:num="852.42">852.42</TD>
<TD x:num="695627.04">695 627.04</TD></TR>
<TR class=even>
<TD>27.02.2012</TD>
<TD x:num="854.54">854.54</TD>
<TD x:num="697356.62">697 356.62</TD></TR>
<TR class=even>
<TD>24.02.2012</TD>
<TD x:num="849.2">849.2</TD>
<TD x:num="692999.51">692 999.51</TD></TR>
<TR class=even>
<TD>31.08.2010</TD>
<TD x:num="818.57">818.57</TD>
<TD x:num="1.000438185E7">10 004 381.85</TD></TR>
<TR class=even>
<TD>11.07.2007</TD>
<TD x:num="1023.31">1 023.31</TD>
<TD x:num="8.311109803E7">83 111 098.03</TD></TR></TBODY></TABLE></BODY></HTML>
<BODY onload=excel()>
<TABLE style="WIDTH: 450pt; TABLE-LAYOUT: fixed; mso-displayed-decimal-separator: '.'; mso-displayed-thousand-separator: ' '" id=excelTable border=0 cellSpacing=0 cellPadding=0>
<COLGROUP>
<COL></COL>
<COL align=right></COL>
<COL align=right></COL>
<THEAD>
<TR id=tHeader>
<TD style="WHITE-SPACE: nowrap" align=center>Дата</TD>
<TD style="WHITE-SPACE: nowrap" align=center>Стоимость пая, руб.</TD>
<TD style="WHITE-SPACE: nowrap" align=center>Стоимость ЧА, руб.</TD></TR></THEAD>
<TBODY>
<TR class=even>
<TD>01.03.2012</TD>
<TD x:num="852.11">852.11</TD>
<TD x:num="695369.57">695 369.57</TD></TR>
<TR class=even>
<TD>29.02.2012</TD>
<TD x:num="854.6">854.6</TD>
<TD x:num="697401.98">697 401.98</TD></TR>
<TR class=even>
<TD>28.02.2012</TD>
<TD x:num="852.42">852.42</TD>
<TD x:num="695627.04">695 627.04</TD></TR>
<TR class=even>
<TD>27.02.2012</TD>
<TD x:num="854.54">854.54</TD>
<TD x:num="697356.62">697 356.62</TD></TR>
<TR class=even>
<TD>24.02.2012</TD>
<TD x:num="849.2">849.2</TD>
<TD x:num="692999.51">692 999.51</TD></TR>
<TR class=even>
<TD>31.08.2010</TD>
<TD x:num="818.57">818.57</TD>
<TD x:num="1.000438185E7">10 004 381.85</TD></TR>
<TR class=even>
<TD>11.07.2007</TD>
<TD x:num="1023.31">1 023.31</TD>
<TD x:num="8.311109803E7">83 111 098.03</TD></TR></TBODY></TABLE></BODY></HTML>
Код:
<TR id=tHeader>
<TD style="WHITE-SPACE: nowrap" align=center>Дата</TD>
<TD style="WHITE-SPACE: nowrap" align=center>Стоимость пая, руб.</TD>
<TD style="WHITE-SPACE: nowrap" align=center>Стоимость ЧА, руб.</TD></TR></THEAD>
Далее посчитать кол-во
Код:
<TR class=even>
Далее необходимо заполнить массив элементами
Код:
<TR class=even>
<TD>01.03.2012</TD>
<TD x:num="852.11">852.11</TD>
<TD x:num="695369.57">695 369.57</TD></TR>
Код:
<TR class=even>
<TD>11.07.2007</TD>
<TD x:num="1023.31">1 023.31</TD>
<TD x:num="8.311109803E7">83 111 098.03</TD></TR></TBODY></TABLE></BODY></HTML>
Пока я пишу скрипт, который по сути заносит всю эту строку в массив и обрабатываю. Конечно, это долго, но прикрутить рег.выражения не хватает навыков.
Помогите, пожалуйста, решить задачу.
Повторюсь, что столбцов может быть и не 3 как тут.. Буду признателен за решения или какие-нибудь блоки, которые хоть как то облегчат скрипт при помощи рег. выражений.