Total Commander Forum Index Total Commander
Ôîðóì ïîääåðæêè ïîëüçîâàòåëåé Total Commander
Ñàéòû: Âñå î Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Îòïðàâêà ôàéëà ïî ïî÷òå ñ çàïèñüþ êîììåíòàðèÿ â áóôåð
Goto page Previous  1, 2, 3, 4
 
Post new topic   Reply to topic    Total Commander Forum Index -> Àâòîìàòèçàöèÿ Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
AVos002



Joined: 04 May 2010
Posts: 47

Post (Separately) Posted: Sat Jun 05, 2010 00:45    Post subject: Reply with quote

Çàáûë óêàçàòü ïàðàìåòðû çàóñêà êîìàíäû ìåíþ «Çàïóñê»:
================================================================
Êîìàíäà: C:\Program Files\Total Commander\Plugins\tcwhelp_b10\DemoScripts\Proba.vbs
Ïàðàìåòðû: %P%N %L
================================================================
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2236
Location: Ìîñêâà, Ðîññèÿ

Post (Separately) Posted: Mon Jun 07, 2010 10:09    Post subject: Reply with quote

AVos002 wrote:
Îøèáêà: Íåäîïóñòèìîå ÷èñëî àðãóìåíòîâ èëè ïðèñâîåíèå çíà÷åíèÿ ñâîéñòâà: 'GetExtensionName'

Íå çíàþ, ÷òî òû çàïóñêàåøü, íî íè â ïåðâîì, íè âî âòîðîì ñêðèïòå íå èñïîëüçóåòñÿ ìåòîä "GetExtensionName".
Ïîêàæè ìíå ñîäåðæèìîå ôàéëà:
AVos002 wrote:
C:\Program Files\Total Commander\Plugins\tcwhelp_b10\DemoScripts\Proba.vbs

_________________
Íåò, ÿ íå ñïëþ. ß ïðîñòî ìåäëåííî ìîðãàþ.
Back to top
View user's profile Send private message
AVos002



Joined: 04 May 2010
Posts: 47

Post (Separately) Posted: Mon Jun 07, 2010 11:32    Post subject: Reply with quote

Çäðàâñòâóé Batya!
Êàê ÿ è ïðåäïîëîæèë, íà ðàáî÷åì êîìïüþòåðå òâîé ñêðèïò çàïóñêàåòñÿ, ÷òî çà áîäÿãà ñ äîìàøíèì êîìïîì íå ïîíèìàþ.
Ìåæäó òåì ÿ íåìíîãî äîðàáîòàë òâîé ñêðèïò â ÷àñòè ïåðåêîäèðîâêè DOS Windows è ïîëó÷èëîñü âîò, ÷òî :
Code:

'==============================================================
' Îòêðûòèå íîâîãî ñîîáùíèÿ MS Outlook ñ âëîæåííûìè ôàéëàìè
'
' Ïàðàìåòðû:
' {ôàéë äëÿ êîììåíòàðèÿ} {ôàéë-ñïèñîê ôàéëîâ äëÿ âëîæåíèÿ}
'
' Ïðèìåð ïàðàìåòðîâ ïðè âûçîâå èç TC:
' %P%N %L
'==============================================================
Option Explicit

Dim FSO, MSO, MSG, File, List, F
Set FSO = CreateObject("Scripting.FileSystemObject")
File    = WScript.Arguments(0)
List    = WScript.Arguments(1)

Set MSO = CreateObject("Outlook.Application")
Set MSG = MSO.CreateItem(0)

MSG.Subject = FSO.GetFileName(File) & " [" & GetComment(File) & "]"
MSG.Body    = "Äîáðûé äåíü!" & vbCrLf & vbCrLf & _
              "---"  & vbCrLf & _
         "Ñ Óâàæåíèåì, AVos002"

For Each F In Split(FSO.OpenTextFile(List).ReadAll, vbNewLine)
  If F <> "" And FSO.FileExists(F) Then
    MSG.Attachments.Add F
  End If
Next


MSG.Display

Set MSG = Nothing
Set MSO = Nothing
Set FSO = Nothing
WScript.Quit

Function GetComment(pPath)
  Const CommFile = "descript.ion"
  Dim lPath, lName, lText, lComm
  Dim lNameArch
  lPath = FSO.GetParentFolderName(pPath)             'ïîëó÷èòü íàçâàíèå ïîëíîãî ïóòè
  lName = FSO.GetFile(pPath).Name                'ïîëó÷èòü íàçâàíèå ôàéëà
  lnameArch=lName
  lName = RusDosWin(lName,0)
  If Instr(lName, " ") > 0 Then lName = """" & lName & """"       'åñëè â íàèìåíîâàíèè ôàéëà åñòü ïðîáåëû, òîãäà íàçâàíèå çàêëþ÷èòü â êàâû÷êè
  If lPath <> "" Then lPath = lPath & "\"             'åñëè íàèìåíîâàíèå ïóòè íå ïóñòîå, òîãäà ïðèáàâèòü â êîíåö ñëýø
  If FSO.FileExists(lPath & CommFile) Then             'åñëè ôàéë descript.ion â òåêóùåé äèðåêòîðèè åñòü, òîãäà ïðîâåäåì äåéñòèÿ ïî ïîèñêó êîììåíòàðèÿ
    lText = FSO.OpenTextFile(lPath & CommFile).ReadAll          'ïåðåäàòü â êîíòåéíåð (ïåðåìåííîé) òåêñò ôàéëà descript.ion
    lComm = Filter(Split(lText, vbNewLine), lName & " ", True, 1)    'âûáðàòü ñòðîêó ñîîòâåòñòâóþùóþ íàèìåíîâàíèþ ôàéëà
    If UBound(lComm) > - 1 Then                'åñëè âûáðàííàÿ ñòðîêà ñîäåðæèò çíà÷åíèå
      GetComment = Replace(Mid(lComm(0), Len(lName) + 2), "Â", "")    'âûðåçàòü (Mid) êîììåíòàðèé è çàìåíèòü (Replace) çíà÷åíèå "Â" íà ïóñòîå
      GetComment = Trim(Replace(GetComment, "\n", " "))
    Else
      GetComment = ""
    End If
  Else                            'åñëè ôàéë descript.ion â òåêóùåé äèðåêòîðèè îòñóòñòâóåò
    GetComment = ""                      'òîãäà êîììåíòàðèé ïóñòîé
  End If
  GetComment=RusDosWin(GetComment,1)
End Function

'=========================================================================================================
Function RusDosWin(TextV, CodeV)
'  Ïðåîáðàçîâàíèå ÊÈÐÈËËÈÖÛ:
'  CodeV = 0 - èç DOS â Windows
'        = 1 - îáðàòíî
'  D - êîíñòàíòà êîäîâ ðóññêèõ ñèìâîëîâ äëÿ DOS (cp866)
'  W - êîíñòàíòà êîäîâ ðóññêèõ ñèìâîëîâ äëÿ Windows (cp1251)
'  îáå êîíñòàíòû ñîäåðæàò òàêóþ ïîñëåäîâàòåëüíîñòü ñèìâîëîâ:
'  ÀÁÂ...ßàáâ...ÿ
'============================================
Const D = "ÀÁÂÃÄŨÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãä叿çèéêëìíîïðñòóôõö÷øùúûüýþÿ¹"
Const W = "€�‚ƒ„…ð†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥ñ¦§¨©ª«¬­®¯àáâãäåæçèéêëìíîïü"
'           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^¦
' ============================================
If CodeV = 0 Then
      RusDosWin = SymChange(TextV, W, D)
    Else
      RusDosWin = SymChange(TextV, D, W)
End If
'RusDosWin = D
End Function

Function SymChange(TextVal, NewCode, OldCode)
'  Ïåðåêîäèðîâêà ñèìâîëîâ  OldCode -> NewCode:
'  â ïåðåìåííîé TextVal âñå ñèìâîëû íàáîðà OldCode çàìåíÿþòñÿ íà ñîîòâåòñòâóþùèå ñèìâîëû íàáîðà NewCode$
'  ÂÍÈÌÀÍÈÅ! Äîëæíî âûïîëíÿòüñÿ óñëîâèå:  LEN(NewCode)=LEN(OldCode)
Dim Sym, PromText
Dim Ltext
Dim i, k
Sym = "" ' TextVal
Ltext = Len(TextVal)
If Ltext > 0 Then
    For i = 1 To Ltext
        PromText = Mid(TextVal, i, 1)             'âûðåçàåì ñèìâîë èç ïåðâîíà÷àëüíîé ñòðîêè
        If Asc(PromText) > 126 Then               'åñëè êîä âûðåçàííîãî ñèìâîëà áîëüøå 126 (ò.å. òðåáóåò ðàñøèôðîâêè)
       k = InStr(OldCode, PromText)           'èùåì ïîðÿäêîâûé íîìåð âõîæäåíèÿ âûðåçàííîãî ñèìâîëà â òàáëèöó OldCode
            If k > 0 Then                         'òîãäà, åñëè ïîðÿäêîâûé íîìåð âõîæäåíèÿ áîëåå 0 (ò.å. íàéäåí)
           Sym = Sym & Mid(NewCode, k, 1)          'òîãäà, äîáàâëÿåì ê ðåçóëüòèðóþùåé ñòðîêå ñîîòâåòñòâóþùèé ñèìâîë èç NewCode
       Else                   'åñëè â OldCode ñîîòâåòñòâóþùèé ñèìâîë íå íàéäåí,
      MsgBox "Ñèìâîë «" & PromText & "íå íàéäåí"   'òîãäà ïîêàçàòü ýòîò ñèìâîë
       end if   
        Else                     'åñëè êîä âûðåçàííîãî ñèìâîëà ìåíüøå 126
            Sym = Sym & PromText            'òîãäà âñòàâèì â ðåçóëüòèðóþùêþ ñòðîêó âûðåçàííûé ñèìâîë áåç èçìåíåíèé
        End If
    Next
End If
SymChange = Sym
End Function

Íàäåþñü ýòî íå âîçáðàíÿåòñÿ?
Back to top
View user's profile Send private message
AVos002



Joined: 04 May 2010
Posts: 47

Post (Separately) Posted: Mon Jun 07, 2010 11:53    Post subject: Reply with quote

Batya wrote:
Ïîêàæè ìíå ñîäåðæèìîå ôàéëà:
AVos002 wrote:
C:\Program Files\Total Commander\Plugins\tcwhelp_b10\DemoScripts\Proba.vbs

Èìåííî ýòîò òåêñò ñîäåðæèòñÿ â Proba.vbs
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2236
Location: Ìîñêâà, Ðîññèÿ

Post (Separately) Posted: Mon Jun 07, 2010 13:40    Post subject: Reply with quote

AVos002 wrote:
Èìåííî ýòîò òåêñò ñîäåðæèòñÿ â Proba.vbs

À òû ñåé÷àñ äîìà?
_________________
Íåò, ÿ íå ñïëþ. ß ïðîñòî ìåäëåííî ìîðãàþ.
Back to top
View user's profile Send private message
AVos002



Joined: 04 May 2010
Posts: 47

Post (Separately) Posted: Mon Jun 07, 2010 13:52    Post subject: Reply with quote

Ñåé÷àñ ÿ íà ðàáîòå, íî åñëè äîãîâîðèìñÿ ïî âðåìåíè, ìîãó áûòü äîìà.
Ç.Û. Êàê òåáå ìîÿ äîïèñêà â ñêðèïòå?
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2236
Location: Ìîñêâà, Ðîññèÿ

Post (Separately) Posted: Mon Jun 07, 2010 16:41    Post subject: Reply with quote

AVos002 wrote:
Ñåé÷àñ ÿ íà ðàáîòå, íî åñëè äîãîâîðèìñÿ ïî âðåìåíè, ìîãó áûòü äîìà.

À ÷åãî äîãîâàðèâàòüñÿ? Ïîêàæè êîä ôàéëà "C:\Program Files\Total Commander\Plugins\tcwhelp_b10\DemoScripts\Proba.vbs", êîòîðûé äîìà. Çàâòðà ðàçáåð¸ìñÿ.

AVos002 wrote:
Ç.Û. Êàê òåáå ìîÿ äîïèñêà â ñêðèïòå?

Ãëàâíîå, ÷òîáû òåáÿ óñòðàèâàëî Wink
Ó ìåíÿ â çàãàøíèêå åñòü ïàðó ìåòîäîâ êîíâåðòàöèè. Îäèí ïîõîæ íà òâîé.
Code:
'Êîíâåðòàöèÿ òåêñòà OEM-866 â Win-1251
Function Dos2Win(pDosString)
  Dim i, lStr
  If Len(pDosString) = 0 Then Exit Function
  For i = 1 To Len(pDosString)
    lStr = Asc(Mid(pDosString, i, 1))
    If     lStr >= 128 And lStr <= 175 Then
                                           Dos2Win = Dos2Win & Chr(lStr + 64)
    ElseIf lStr >= 224 And lStr <= 239 Then
                                           Dos2Win = Dos2Win & Chr(lStr + 16)
    ElseIf lStr  = 240                 Then
                                           Dos2Win = Dos2Win & Chr(168)
    ElseIf lStr  = 241                 Then
                                           Dos2Win = Dos2Win & Chr(184)
    ElseIf lStr  = 255                 Then
                                           Dos2Win = Dos2Win & Chr(160)
    Else
                                           Dos2Win = Dos2Win & Chr(lStr)
    End If
  Next
End Function

Code:
Set FSO = CreateObject("Scripting.FilesystemObject")
MsgBox StrConv(FSO.OpenTextFile("dos.txt").ReadAll, "ibm866", "windows-1251")

Function StrConv(Text, SourceCharset, DestCharset)
  With CreateObject("ADODB.Stream")
    .Type = 2
    .Mode = 3
    .Open
    .Charset  = DestCharset
    .WriteText Text
    .Position = 0
    .Charset  = SourceCharset
    StrConv   = .ReadText
  End With
End Function

_________________
Íåò, ÿ íå ñïëþ. ß ïðîñòî ìåäëåííî ìîðãàþ.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ðîñòîâ-Äîí

Post (Separately) Posted: Mon Jun 07, 2010 17:07    Post subject: Reply with quote

Ñàìûé áûñòðûé ñïîñîá ïåðåêîäèðîâêè - ñîñòàâèòü òàáëèöó, ãäå íà ïîçèöèè, ñîîòâåòñòâóþùåé èíäåêñó (êîäó çà âû÷åòîì 128) èñõîäíîãî ñèìâîëà áóäåò ñòîÿòü ñèìâîë, íà êîòîðûé åãî íóæíî çàìåíèòü. Òîãäà îòïàäåò íåîáõîäèìîñòü â ïîèñêå ñèìâîëà â ñòðîêå, à òàêæå â êîíêàòåíàöèè ñòðîê, íóæíî áóäåò ëèøü îäèí ðàç ïðîéòèñü ïî ñòðîêå è èñïðàâèòü êàæäûé åå ñèìâîë íà ñèìâîë, óêàçàííûé â ìàññèâå (åñëè ñêðèïò ïîçâîëÿåò ìîäèôèöèðîâàòü ñòðîêè). À òàáëèöà áóäåò âñåãî íà 128 ýëåìåíòîâ, è ñòðîèòü åå ïðîùå ïðîñòîãî - ïèøåì â áèíàðíèê êîäû îò 128 äî 255 è ïåðåêîäèðóåì â ëþáîì ðåäàêòîðå ôàéë èç 866 â 1251 - òàáëèöà ãîòîâà!
Code:
ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîï---¦+¦¦¬¬¦¦¬---¬L+T+-+¦¦Lã¦T¦=+¦¦TTLL-ã++----¦¦-ðñòóôõö÷øùúûüýþÿ¨¸ªº¯¿¡¢°•·v¹¤¦ 
(òàáëèöà äëÿ ïåðåêîäèðîâêè 866->1251, ïåðåêîäèðîâàíî â EmEditor; îäèí ñèìâîë ôîðóì ïåðåäàë íåâåðíî - íåðàçðûâíûé ïðîáåë)
Code:
??'?":ÅØ?%?<?????''""--?T?>????ÿö÷?ý?³ðcò<¿-Rôø+???çúñüó>???õ€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬-®¯àáâãäåæçèéêëìíîï
(òàáëèöà äëÿ ïåðåêîäèðîâêè 1251->866, ïåðåêîäèðîâàíî â EmEditor; òðè ñèìâîëà ôîðóì ïåðåäàë íåâåðíî - äëÿ áóêâ Ø, à, í)

Òàêèì îáðàçîì, äëÿ êàæäîãî ñèìâîëà s[i] èñõîäíîé ñòðîêè íîâûé ñèìâîë ðàâåí table[êîä(s[i])-128] (èëè ñàìîìó ñåáå, åñëè s[i]<128) - íåáîëüøîé öèêëèê. À òàáëèöó ïåðåêîäèðîâêè ëó÷øå ïåðåäàâàòü â ôóíêöèþ êàê ïàðàìåòð.
_________________
TCFS2 + TCFS2Tools: Ïîëíîýêðàííûé ðåæèì è ìíîãîå äðóãîå (îáñóæäåíèå)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
AVos002



Joined: 04 May 2010
Posts: 47

Post (Separately) Posted: Mon Jun 07, 2010 18:10    Post subject: Reply with quote

Ñïàñèáî MVV, ñåé÷àñ ïåðåâàðþ è ïîïðîáóþ ñäåëàòü íà VBScript.
Back to top
View user's profile Send private message
AVos002



Joined: 04 May 2010
Posts: 47

Post (Separately) Posted: Wed Jun 09, 2010 22:54    Post subject: Reply with quote

Ïðèâåò Batya, ïðîøó ïðîùåíèÿ çà ïàóçó, íå áûëî âîçìîæíîñòè çàéòè íà ôîðóì.
Batya wrote:
À ÷åãî äîãîâàðèâàòüñÿ? Ïîêàæè êîä ôàéëà "C:\Program Files\Total Commander\Plugins\tcwhelp_b10\DemoScripts\Proba.vbs", êîòîðûé äîìà. Çàâòðà ðàçáåð¸ìñÿ.

Code:
'==============================================================
' Îòêðûòèå íîâîãî ñîîáùíèÿ MS Outlook ñ âëîæåííûìè ôàéëàìè
'
' Ïàðàìåòðû:
' {ôàéë äëÿ êîììåíòàðèÿ} {ôàéë-ñïèñîê ôàéëîâ äëÿ âëîæåíèÿ}
'
' Ïðèìåð ïàðàìåòðîâ ïðè âûçîâå èç TC:
' %P%N %L
'==============================================================
Option Explicit

Dim FSO, MSO, MSG, File, List, F
Set FSO = CreateObject("Scripting.FileSystemObject")
File    = WScript.Arguments(0)
List    = WScript.Arguments(1)

Set MSO = CreateObject("Outlook.Application")
Set MSG = MSO.CreateItem(0)

MSG.Subject = FSO.GetFileName(File) & " [" & GetComment(File) & "]"
MSG.Body    = "Äîáðûé äåíü!" & vbCrLf & vbCrLf & _
              "---"  & vbCrLf & _
         "Ñ Óâàæåíèåì, AVos002"

For Each F In Split(FSO.OpenTextFile(List).ReadAll, vbNewLine)
  If F <> "" And FSO.FileExists(F) Then
    MSG.Attachments.Add F
  End If
Next


MSG.Display

Set MSG = Nothing
Set MSO = Nothing
Set FSO = Nothing
WScript.Quit

Function GetComment(pPath)
  Const CommFile = "descript.ion"
  Dim lPath, lName, lText, lComm
  Dim lNameArch
  lPath = FSO.GetParentFolderName(pPath)             'ïîëó÷èòü íàçâàíèå ïîëíîãî ïóòè
  lName = FSO.GetFile(pPath).Name                'ïîëó÷èòü íàçâàíèå ôàéëà
  lnameArch=lName
  lName = RusDosWin(lName,0)
  If Instr(lName, " ") > 0 Then lName = """" & lName & """"       'åñëè â íàèìåíîâàíèè ôàéëà åñòü ïðîáåëû, òîãäà íàçâàíèå çàêëþ÷èòü â êàâû÷êè
  If lPath <> "" Then lPath = lPath & "\"             'åñëè íàèìåíîâàíèå ïóòè íå ïóñòîå, òîãäà ïðèáàâèòü â êîíåö ñëýø
  If FSO.FileExists(lPath & CommFile) Then             'åñëè ôàéë descript.ion â òåêóùåé äèðåêòîðèè åñòü, òîãäà ïðîâåäåì äåéñòèÿ ïî ïîèñêó êîììåíòàðèÿ
    lText = FSO.OpenTextFile(lPath & CommFile).ReadAll          'ïåðåäàòü â êîíòåéíåð (ïåðåìåííîé) òåêñò ôàéëà descript.ion
    lComm = Filter(Split(lText, vbNewLine), lName & " ", True, 1)    'âûáðàòü ñòðîêó ñîîòâåòñòâóþùóþ íàèìåíîâàíèþ ôàéëà
    If UBound(lComm) > - 1 Then                'åñëè âûáðàííàÿ ñòðîêà ñîäåðæèò çíà÷åíèå
      GetComment = Replace(Mid(lComm(0), Len(lName) + 2), "Â", "")    'âûðåçàòü (Mid) êîììåíòàðèé è çàìåíèòü (Replace) çíà÷åíèå "Â" íà ïóñòîå
      GetComment = Trim(Replace(GetComment, "\n", " "))
    Else
      GetComment = ""
    End If
  Else                            'åñëè ôàéë descript.ion â òåêóùåé äèðåêòîðèè îòñóòñòâóåò
    GetComment = ""                      'òîãäà êîììåíòàðèé ïóñòîé
  End If
  GetComment=RusDosWin(GetComment,1)
End Function

'=========================================================================================================
Function RusDosWin(TextV, CodeV)
'  Ïðåîáðàçîâàíèå ÊÈÐÈËËÈÖÛ:
'  CodeV = 0 - èç DOS â Windows
'        = 1 - îáðàòíî
'  D - êîíñòàíòà êîäîâ ðóññêèõ ñèìâîëîâ äëÿ DOS (cp866)
'  W - êîíñòàíòà êîäîâ ðóññêèõ ñèìâîëîâ äëÿ Windows (cp1251)
'  îáå êîíñòàíòû ñîäåðæàò òàêóþ ïîñëåäîâàòåëüíîñòü ñèìâîëîâ:
'  ÀÁÂ...ßàáâ...ÿ
'============================================
Const D = "ÀÁÂÃÄŨÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãä叿çèéêëìíîïðñòóôõö÷øùúûüýþÿ¹"
Const W = "€�‚ƒ„…ð†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥ñ¦§¨©ª«¬­®¯àáâãäåæçèéêëìíîïü"
'           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^¦
' ============================================
If CodeV = 0 Then
      RusDosWin = SymChange(TextV, W, D)
    Else
      RusDosWin = SymChange(TextV, D, W)
End If
'RusDosWin = D
End Function

Function SymChange(TextVal, NewCode, OldCode)
'  Ïåðåêîäèðîâêà ñèìâîëîâ  OldCode -> NewCode:
'  â ïåðåìåííîé TextVal âñå ñèìâîëû íàáîðà OldCode çàìåíÿþòñÿ íà ñîîòâåòñòâóþùèå ñèìâîëû íàáîðà NewCode$
'  ÂÍÈÌÀÍÈÅ! Äîëæíî âûïîëíÿòüñÿ óñëîâèå:  LEN(NewCode)=LEN(OldCode)
Dim Sym, PromText
Dim Ltext
Dim i, k
Sym = "" ' TextVal
Ltext = Len(TextVal)
If Ltext > 0 Then
    For i = 1 To Ltext
        PromText = Mid(TextVal, i, 1)             'âûðåçàåì ñèìâîë èç ïåðâîíà÷àëüíîé ñòðîêè
        If Asc(PromText) > 126 Then               'åñëè êîä âûðåçàííîãî ñèìâîëà áîëüøå 126 (ò.å. òðåáóåò ðàñøèôðîâêè)
       k = InStr(OldCode, PromText)           'èùåì ïîðÿäêîâûé íîìåð âõîæäåíèÿ âûðåçàííîãî ñèìâîëà â òàáëèöó OldCode
            If k > 0 Then                         'òîãäà, åñëè ïîðÿäêîâûé íîìåð âõîæäåíèÿ áîëåå 0 (ò.å. íàéäåí)
           Sym = Sym & Mid(NewCode, k, 1)          'òîãäà, äîáàâëÿåì ê ðåçóëüòèðóþùåé ñòðîêå ñîîòâåòñòâóþùèé ñèìâîë èç NewCode
       Else                   'åñëè â OldCode ñîîòâåòñòâóþùèé ñèìâîë íå íàéäåí,
      MsgBox "Ñèìâîë «" & PromText & "íå íàéäåí"   'òîãäà ïîêàçàòü ýòîò ñèìâîë
       end if   
        Else                     'åñëè êîä âûðåçàííîãî ñèìâîëà ìåíüøå 126
            Sym = Sym & PromText            'òîãäà âñòàâèì â ðåçóëüòèðóþùêþ ñòðîêó âûðåçàííûé ñèìâîë áåç èçìåíåíèé
        End If
    Next
End If
SymChange = Sym
End Function

Ïðè çàïóñêå îøèáêà ñëåäóþùàÿ - >
======================
Ñòðîêà: 78
Ñèìâîë: 18
Îøèáêà: Íåäîïóñòèìûé çíàê
======================
ß ïîñ÷èòàë êîîðäèíàòó îøèáêè - ýòî ñòðîêà â êîòîðîé îáúÿâëÿåòñÿ êîíñòàíòà W, ñèìâîë - ð (âîçìîæíî ôîðóì íå ïåðåäàåò äîëæíîé êîäèðîâêè)
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Ìåñòíûé

Post (Separately) Posted: Thu Jun 10, 2010 02:22    Post subject: Reply with quote

Âîò òóò ó ìåíÿ áûëà ôóíêöèÿ WIN2DOS, óæ ïðîùå íåêóäà. Òàê âîò â òîì ïîñòå åñòü ññûëêà íà VBS ôàéë ñ ýòîé ôóíêîé. Ýòî ÷òîáû áåç îøèáîê ñ ôîðóìíûìè ïåðåêîäèðîâêàìè.

PS Åñëè âäðóã êòî íå äîãàäàåòñÿ: äëÿ âåðñèè DOS2WIN íóæíî ëèøü ïîìåíÿòü ìåñòàìè çíà÷åíèÿ ïåðìåííûõ ñ íàáîðàìè ñèìâîëîâ.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2236
Location: Ìîñêâà, Ðîññèÿ

Post (Separately) Posted: Thu Jun 10, 2010 10:53    Post subject: Reply with quote

AVos002 wrote:
Îøèáêà: Íåäîïóñòèìûé çíàê

Ñëóøàé, ÿ âñ¸-òàêè íå ïîíÿë, à ãäå æå îøèáêà ñ GetExtensionName?

Ïðîâåðü ñíà÷àëà ðàáîòó ñêðèïò áåç ïåðåêîäèðîâêè.
Åñëè ðàáîòàåò, òî äàëåå âîçìîæíû 2 âàðèàíòà:
1. Èñïîëüçîâàòü êàêóþ-íèáóäü äðóãóþ ôóíêöèþ ïåðåêîäèðîâàíèÿ. Èõ óæå òåáå äàëè äîñòàòî÷íî.
2. Ïåðåêîäèðîâàòü âñå descript.ion â Windows-êîäèðîâêó. Òåáå çà÷åì-íèáóäü åù¸ íóæíî â DOS?
_________________
Íåò, ÿ íå ñïëþ. ß ïðîñòî ìåäëåííî ìîðãàþ.
Back to top
View user's profile Send private message
KarS



Joined: 21 Apr 2006
Posts: 102
Location: ã. Àáàêàí

Post (Separately) Posted: Sun Nov 27, 2011 14:06    Post subject: Reply with quote

Batya
Óñòàíîâèë ñêðèïò, âûëîæåííûé íà ïðåäûäóùåé ñòðàíèöå òîïèêà.
Ðàáîòàåò! Very Happy Ó ìåíÿ Win7, MS Outlook 14.
Áîëüøîå ñïàñèáî çà ïîìîùü â àâòîìàòèçàöèè. Very Happy
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Àâòîìàòèçàöèÿ Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3, 4
Page 4 of 4

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group