Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Chrom'оподобные браузеры (Часть 1)

Модерирует : gyra, Maz

Maz (18-02-2021 10:23): Chrom'оподобные браузеры (Часть 2)  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

Tilks

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
' УПАКОВКА языкового PAK-файла Chromium
' Параметр командной строки - имя распакованного файла.  
' Если параметр отсутствует, то по умолчанию ru.unp
' Упаковывает в файл с расширением pak
Option Explicit
Dim fso, f1, f2, filename, s, ID, txt, path, i, j, iCount, rc, idpos, txtpos
Select Case WScript.Arguments.Count
Case 0:
    filename = "ru_opera.unp"
Case 1:
    filename = WScript.Arguments.Item(0)
Case Else
    MsgBox "Недопустимое количество параметров командной строки!"
    WScript.Quit
End Select
 
Dim A(400000)
Set fso = CreateObject("Scripting.FileSystemObject")
path = ""
Set f1 = fso.OpenTextFile(path + filename,1, False, 0)
Set f2 = fso.OpenTextFile(path + Left(filename, InStr(1,filename, ".")) + "pak",2,True)
 
Do While Not f1.AtEndOfStream
    s = UCase(f1.readline)
    If Left(s,9) = "ROWCOUNT=" Then  
        rc = CInt(Mid(s,10,255))
        Save2 rc, 8
    ElseIf s = "[TRANSLATION]" Then
        Exit Do
    End If
Loop
 
idpos = 12
txtpos = 18 + rc * 6
For i = 1 To rc
    s = f1.ReadLine    
    ID = Left(s, InStr(1, s, "=") - 1)
    txt = Mid(s, InStr(1, s, "=") + 2,65535)
    txt = Left(txt, Len(txt) - 1)
    txt = Replace(txt, Chr(8), Chr(13), 1) ' Восстановить переносы строк из костылей
    txt = Replace(txt, Chr(7), Chr(10), 1) ' Восстановить переносы строк из костылей
    Save2 ID, idpos
    Save4 txtpos, idpos + 2
    SaveTXT txt, txtpos
    txtpos = txtpos + Len(txt)
    idpos = idpos + 6
Next
A(idpos) = 0 ' Последний пустой указатель
A(idpos + 1) = 0
Save4 txtpos, idpos + 2
 
f2.Write Chr(5) + Chr(0) + Chr(0) + Chr(0) + Chr(1) + Chr(0) + Chr(0) + Chr(0)  + Chr(A(8)) + Chr(A(9)) + Chr(0) + Chr(0)
 
For i = 12 To txtpos -1
    f2.Write Chr(A(i))
Next  
f1.Close
f2.Close
WScript.Echo "OK"
 
Sub Save4(num, offset)
    Dim n1, n2, n3, n4
    n4 = Int(num / 16777216)
    n3 = Int(num / 65536) - n4 * 256
    n2 = Int(num / 256) - n4 * 65536 - n3 * 256
    n1 = num - Int(num /256) * 256
    A(offset) = n1
    A(offset + 1) = n2
    A(offset + 2) = n3
    A(offset + 3) = n4
End Sub
 
Sub Save2(num, offset)
    Dim n1, n2
    n2 = Int(num / 256)
    n1 = num - Int(num /256) * 256
    A(offset) = n1
    A(offset + 1) = n2
End Sub
 
Sub SaveTXT(s, offset)
    Dim i, c
    c = Len(s)
    For i = 1 To c
        A(offset + i -1) = Asc(Mid(s,i,1))
    Next
End Sub

Всего записей: 2688 | Зарегистр. 14-08-2005 | Отправлено: 17:35 23-11-2017
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Chrom'оподобные браузеры (Часть 1)
Maz (18-02-2021 10:23): Chrom'оподобные браузеры (Часть 2)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru