Автор Тема: Конвертация формата файлов Справки  (Прочитано 3022 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kai [?]

  • Новичок
  • *
  • Сообщений: 3
  • Репутация: 0
  • Пол: Мужской
    • Награды
Здравствуйте

Необходимо конвертировать *.toc формат в *.hhc

На входе имею (тос) :

ТосИндекс\Ссылка


1 "Текст:ссылка1"
2 "Текст:ссылка2"
1 "Текст:ссылка3"
2 "Текст:ссылка4"
3 "Текст:ссылка5"
4 "Текст:ссылка6"
4 "Текст:ссылка7"
5 "Текст:ссылка8"
3 "Текст:ссылка9"
2 "Текст:ссылка10"

...а на выходе должно быть:
TitleBox...............(индекс=1)......................
<ul>
<li>
<object>
 "Текст:ссылка1"
</object>
...............(индекс=2)......................
<object>
 "Текст:ссылка2"
</object>
...............(индекс=1)......................
<li>
<object>
 "Текст:ссылка3"
</object>
...............(индекс=2)......................
<ul>
<li>
<object>
 "Текст:ссылка4"
</object>
...............(индекс=3)......................
<ul>
<li>
<object>
 "Текст:ссылка5"
</object>
...............(индекс=4)......................
<ul>
<li>
<object>
 "Текст:ссылка6"
</object>
</ul>
</ul>
...............(индекс=4)......................
<object>
 "Текст:ссылка7"
</object>
...............(индекс=5)......................
<ul>
<li>
<object>
 "Текст:ссылка8"
</object>
...............(индекс=3)......................
</ul>
</ul>
<object>
 "Текст:ссылка9"
</object>
...............(индекс=2)......................
</ul>
<object>
 "Текст:ссылка9"
</object>
...............(конец файла)................
</ul>



а это алгоритм преобразования:

Код: AutoIt [Выделить]
$l=1
$write=
$linef=StringSplit($linefcx,@CRLF,1) ;Разбиваю "тос"на строчки
$linef_count=$linef[0]-1 ;Счётчик
    ; только для первой строчки тос файла....
    $write=$write&"<ul>"&@crlf&"<LI><OBJECT type="&'"'&"text/sitemap"&'"'&">"&@crlf&"   <param name="&'"'&"Name"&'"'&" value="&'"'&$line[1]&'"'&">"&@crlf&"      </OBJECT>"&@crlf
    ;  для всех остальных ....
$l=$l+1
Do
  ;В $i1 Индекс текущей строчки . в $i2 предыдущей
    $temp=StringMid($linef[$l],1,1)
    $temp=StringInStr($linef[$l]," ")
    $i1=StringMid($linef[$l],1,($temp-1))
    $p=$l-1
    $temp=StringMid($linef[$p],1,1)
    $temp=StringInStr($linef[$p]," ")
    $i2=StringMid($linef[$p],1,($temp-1))
;/////////  $i1>$i2  ///////////
    if $i1>$i2 Then
            $write=$write&"<UL>"&@crlf&" <LI><OBJECT type="&'"'&"text/sitemap"&'"'&">"&@crlf&"   <param name="&'"'&"Name"&'"'&" value="&'"'&$line[1]&'"'&">"&@crlf&"       </OBJECT>"&@crlf
    endif
;/////////  $i1<$i2  ///////////
    if $i1<$i2 Then
        $res=$i2-$i1
        $uld="</UL>"&@crlf
        $uld1=""
        Do
          $uld1=$uld1&$uld
          $res=$res-1
        Until $res=0
            $write=$write&$uld1&" <LI><OBJECT type="&'"'&"text/sitemap"&'"'&">"&@crlf&"   <param name="&'"'&"Name"&'"'&" value="&'"'&$line[1]&'"'&">"&@crlf&"       </OBJECT>"&@crlf
    endif
;/////////  $i1=$i2  ///////////
    if $i1=$i2 Then
            $write=$write&"<OBJECT type="&'"'&"text/sitemap"&'"'&">"&@crlf&"   <param name="&'"'&"Name"&'"'&" value="&'"'&$line[1]&'"'&">"&@crlf&"       </OBJECT>"&@crlf
      endif
      $l=$l+1
    Until $l=$linef_count
   
   
;Последние действия
$res2=$i1
$uld1=""
$isAssigned=Assign($uld,"")
if $isAssigned=0 Then $uld="</UL>"&@crlf

Do
  $uld1=$uld1&$uld
  $res2=$res2-1
Until $res2=0
;$Result - Результат
$Result=$write&$uld1





Русское сообщество AutoIt

Конвертация формата файлов Справки
« Отправлен: Ноябрь 17, 2010, 12:23:20 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
433 Ответов
260103 Просмотров
Последний ответ Апрель 22, 2019, 22:53:32
от xXx
1 Ответов
1159 Просмотров
Последний ответ Июль 21, 2015, 18:51:01
от madmasles
7 Ответов
1398 Просмотров
Последний ответ Февраль 03, 2017, 21:37:06
от eralex
2 Ответов
1174 Просмотров
Последний ответ Май 13, 2017, 15:22:23
от Garrett
2 Ответов
719 Просмотров
Последний ответ Май 22, 2017, 15:15:47
от AlexNewman
2 Ответов
558 Просмотров
Последний ответ Январь 11, 2018, 07:11:05
от Boris
2 Ответов
1336 Просмотров
Последний ответ Сентябрь 01, 2018, 04:18:55
от Murikipak
0 Ответов
211 Просмотров
Последний ответ Апрель 13, 2018, 10:02:50
от АндрейVirus
16 Ответов
1740 Просмотров
Последний ответ Июнь 19, 2019, 19:59:34
от Cytrus
0 Ответов
97 Просмотров
Последний ответ Май 27, 2019, 19:01:06
от joiner