This forum uses cookies. Click X button to hide this message. What is stored? / Privacy
Total Commander Forum Index Total Commander
Forum - Public Discussion and Support
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Römische Zahlen umwandeln

 
Post new topic   Reply to topic    Total Commander Forum Index -> Total Commander (Deutsch) Printable version
View previous topic :: View next topic  
Author Message
Xantelupe
New Member
New Member


Joined: 07 Jun 2018
Posts: 1

PostPosted: Thu Jun 07, 2018 2:27 am    Post subject: Römische Zahlen umwandeln Reply with quote

Im Computer-Zeitalter Listen mit römischen Zahlen zu ordnen finde ich sehr unpraktisch. Trotzdem kommt es immer wieder vor.
Gibt es eine Lösung, mithilfe von Total-Commander, eine Liste auf einen Rusch von römischen in arabische Zahlen umzuwandeln?
Back to top
View user's profile Send private message Send e-mail
ghisler(Author)
Site Admin
Site Admin


Joined: 04 Feb 2003
Posts: 35712
Location: Switzerland

PostPosted: Thu Jun 07, 2018 3:00 am    Post subject: Reply with quote

Nein, derzeit leider nicht. Das wäre ein guter Anwendungsfall für ein Inhaltsplugin.
_________________
Author of Total Commander
http://www.ghisler.com
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Stefan2
Power Member
Power Member


Joined: 13 Sep 2007
Posts: 1926
Location: Europa

PostPosted: Thu Jun 07, 2018 4:12 am    Post subject: Reply with quote

>> römischen in arabische Zahlen

Das ist nicht so ganz einfach.
zB wird >i< in >1< umgewandelt, und iii in 111 statt 3.


Aber um wie viele verschiedene "römischen Zahlen" reden wir denn hier bei dir?

Und wo stehen die im Dateinamen, immer am Anfang, oder auch mal mittendrin?
D.h.: sind die römischen Zahlen immer von Leerzeichen oder speziellen Zeichen wie zB Klammern umgeben bzw. stehen immer am Anfang oder Ende des Namens?

Je nachdem was du vor hast, kann dir hier vielleicht doch geholfen werden. Zur Not mittels eines Skripts?




 
_________________
The destination is one thing. Getting there is everything.
Back to top
View user's profile Send private message
vdijken
Junior Member
Junior Member


Joined: 30 Jul 2016
Posts: 42
Location: The Netherlands

PostPosted: Fri Jun 08, 2018 2:56 pm    Post subject: Reply with quote

Ist es nicht viel einfacher die Software an zu passen das es arabische Zahlen produziert?
Back to top
View user's profile Send private message Send e-mail
Stefan2
Power Member
Power Member


Joined: 13 Sep 2007
Posts: 1926
Location: Europa

PostPosted: Sat Jun 09, 2018 1:03 am    Post subject: Reply with quote

vdijken wrote:
Ist es nicht viel einfacher die Software an zu passen das es arabische Zahlen produziert?


Wenn man selbst die Möglichkeit dazu hat.
Aber eventuell kann/darf man an der Software nichts ändern, oder bekommt nur die Ergebnisdateien zugesendet.




 
_________________
The destination is one thing. Getting there is everything.
Back to top
View user's profile Send private message
regex
Junior Member
Junior Member


Joined: 19 Jul 2007
Posts: 31

PostPosted: Sat Jun 09, 2018 2:14 am    Post subject: Reply with quote

Lt. Internetsuche gibt es seit Excel 2013 dort eine Funktion namens arabisch, die diese Umwandlung macht. Da ich noch mit älteren Versionen von Excel unterwegs bin, kann ich aber dazu nichts Konkretes sagen. Aber vielleicht hast du ja Zugriff darauf.

vG
Back to top
View user's profile Send private message
Wilhelm M.
Power Member
Power Member


Joined: 05 Jun 2003
Posts: 733

PostPosted: Sat Jun 09, 2018 4:12 am    Post subject: Reply with quote

Im folgenden Link wird erklärt, wie man in Excel >= 2010 römische in arabische Zahlen umwandelt:
http://www.excelformeln.de/formeln.html?welcher=228
Vielleicht kannst Du damit etwas anfangen. Ich war zu faul, es genauer zu studieren... Wink
_________________
Grüße/Regards,
Wilhelm
Back to top
View user's profile Send private message Send e-mail
Cargo
Junior Member
Junior Member


Joined: 14 Apr 2005
Posts: 8
Location: Germany

PostPosted: Sun Jun 10, 2018 12:51 pm    Post subject: Reply with quote

In Excel 2013 gibt es die Funktion RÖMISCH().

Eventuell auch schon in Versionen vorher.

Nach kurzem Test -> funktioniert.

hth
Back to top
View user's profile Send private message
Wilhelm M.
Power Member
Power Member


Joined: 05 Jun 2003
Posts: 733

PostPosted: Mon Jun 11, 2018 5:29 am    Post subject: Reply with quote

Römisch() ist aber genau der umgekehrte Prozess. Den gibt es schon seit längerem. Angeblich gibt es in neueren Excel-Versionen auch ein Arabisch(), aber das habe ich nur gelesen.
_________________
Grüße/Regards,
Wilhelm
Back to top
View user's profile Send private message Send e-mail
Stefan2
Power Member
Power Member


Joined: 13 Sep 2007
Posts: 1926
Location: Europa

PostPosted: Mon Jun 11, 2018 6:31 am    Post subject: Reply with quote

Ja, Excel 365 v16 kann das, aber anscheinend nur direkt erkennbare römische Zahlen,
nicht solche, die irgendwo im Namen stehen.


A1
Test iii Dateiname.ext

C1
=ARABISCH((A1)
>#WERT!<


- - -

Man müsste also diese römische Zahlen erst mal genau lokalisieren und extrahieren.
Aber dazu kam vom OP noch keine Infos.


Beispiel:

A1
Test iii Dateiname.ext

C1
=TEIL(A1;FINDEN(" ";A1);4)
>iii<
[die feste '4' kann man eventuell durch ein zweites FINDEN() ersetzen]

E1
=ARABISCH(C1)
>3<


F1
<hier fehlt noch das zusammensetzen des neuen namens>


- - -


Aber viel einfacher als mit Excel könnte man das mit einem Skript erledigen.



 
_________________
The destination is one thing. Getting there is everything.
Back to top
View user's profile Send private message
Stefan2
Power Member
Power Member


Joined: 13 Sep 2007
Posts: 1926
Location: Europa

PostPosted: Tue Jun 12, 2018 1:38 am    Post subject: VBScript: ForEachSelFileDo - Roman To Arabic.vbs Convert num Reply with quote

Hier mal ein VBScript mit ganz einfacher 1:1 Zeichenumwandlung für Zahlen I-X (1 bis 10) , nur mal so, als POC.

Nur für Testdateien, oder habe ein Backup!


Code:
'// Here's a very simple VBS script, stupid one-to-one string replacement.
'// Would need to use a better algorithm, but for just some files this may work (HAVE A BACKUP!!!)
'
'////////////////////////////////////////////////////////////////
'FROM:
'Test 1 Dateiname i.ext
'Test 2 Dateiname ii.ext
'Test iii Dateiname 3.ext
'IV Test 4 Dateiname.ext
'V Test 5 Dateiname.ext
'VI Test 6 Dateiname VI.ext
'VII Test 7 Dateiname (VII).ext
'VIII Test 8 Dateiname [VIII].ext
'IX Test 9 Dateiname IX Test.ext
'X Test 10 Dateiname X Test.ext
'TO:
'4 Test 4 Dateiname.ext
'5 Test 5 Dateiname.ext
'6 Test 6 Dateiname 6.ext
'7 Test 7 Dateiname (7).ext
'8 Test 8 Dateiname [8].ext
'9 Test 9 Dateiname 9 Test.ext
'10 Test 10 Dateiname 10 Test.ext
'Test 1 Dateiname 1.ext
'Test 2 Dateiname 2.ext
'Test 3 Dateiname 3.ext

'////////////////////////////////////////////////////////////////
'// TC-Button:
'//    Command   = "%COMMANDER_PATH%\TOOLs\CMDs\_ForEachSelFileDo - RomanToArabic.vbs"
'//    Parameter = "%L"
'//    Startpath =
'//    Icon      = WScript.exe
'//    Tooltip   = Convert Romanic digit to Arabic
'//
'// Script found at: https://ghisler.ch/board/viewtopic.php?p=342688#342688
'// Date: 2018-06-12 Tue
'// Version: 1.0
'////////////////////////////////////////////////////////////////
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSO   = Wscript.CreateObject("WScript.Shell")

LeftDelim  = "\b"
RightDelim = "\b"

'////////////////////////////////////////////////////////////////
sTCtempList = Wscript.arguments.Item(0) ' The TC temp file due the "%L"
If  FSO.FileExists(sTCtempList) Then
     Const FORREADING = 1
      Set oTextStream = FSO.OpenTextFile(sTCtempList,FORREADING)
      Do Until oTextStream.AtEndOfStream

         vCurrLine = oTextStream.ReadLine
         Set oFile = FSO.GetFile(vCurrLine)
         vFile     = FSO.GetFileName(oFile)
         vBase     = FSO.GetBaseName(oFile)
         vExte     = FSO.GetExtensionName(oFile)
         vAlt = vBase

         'Function ReplaceRegEx(strOrg, strSearch, strReplace, bIgnoreCase, bGlobal)

         'ACHTUNG  : Groß- / Kleinschreibung wird berücksichtigt !!! (bIgnoreCase=False ; iii != Iii != III)
         'ATTENTION: Upper- Lower-Case writing is respected     !!! (bIgnoreCase=False ; iii != Iii != III)

         strPattern = "X"
         strReplace = "10"
         vBase = ReplaceRegEx(vBase, LeftDelim & strPattern & RightDelim, strReplace, False, True)

         strPattern = "IX"
         strReplace = "9"
         vBase = ReplaceRegEx(vBase, LeftDelim & strPattern & RightDelim, strReplace, False, True)

         strPattern = "VIII"
         strReplace = "8"
         vBase = ReplaceRegEx(vBase, LeftDelim & strPattern & RightDelim, strReplace, False, True)

         strPattern = "VII"
         strReplace = "7"
         vBase = ReplaceRegEx(vBase, LeftDelim & strPattern & RightDelim, strReplace, False, True)

         strPattern = "VI"
         strReplace = "6"
         vBase = ReplaceRegEx(vBase, LeftDelim & strPattern & RightDelim, strReplace, False, True)

         strPattern = "V"
         strReplace = "5"
         vBase = ReplaceRegEx(vBase, LeftDelim & strPattern & RightDelim, strReplace, False, True)

         strPattern = "IV"
         strReplace = "4"
         vBase = ReplaceRegEx(vBase, LeftDelim & strPattern & RightDelim, strReplace, False, True)

         strPattern = "iii"
         strReplace =  "3"
         vBase = ReplaceRegEx(vBase, LeftDelim & strPattern & RightDelim, strReplace, False, True)

         strPattern = "ii"
         strReplace =  "2"
         vBase = ReplaceRegEx(vBase, LeftDelim & strPattern & RightDelim, strReplace, False, True)

         strPattern = "i"
         strReplace = "1"
         vBase = ReplaceRegEx(vBase, LeftDelim & strPattern & RightDelim, strReplace, False, True)

         'MsgBox vAlt & vbLF & vBase
         FSO.MoveFile vFile, vBase & "." & vExte ' use for .RenameFile too
      Loop
      oTextStream.Close
Else
   WScript.Echo "Input file  sTCtempList  not found."
End If
'////////////////////////////////////////////////////////////////
Function ReplaceRegEx(strOrg, strSearch, strReplace, bIgnoreCase, bGlobal)
   Dim regEx
   Set regEx = New RegExp
   regEx.Pattern = strSearch
   regEx.IgnoreCase = bIgnoreCase
   regEx.Global = bGlobal
   ReplaceRegEx = regEx.Replace(strOrg, strReplace)
End Function 'ReplaceRegEx
'////////////////////////////////////////////////////////////////
'This is the end, my only friend, the end.
'////////////////////////////////////////////////////////////////
'////////////////////////////////////////////////////////////////






 
_________________
The destination is one thing. Getting there is everything.
Back to top
View user's profile Send private message
Hacker
Moderator
Moderator


Joined: 06 Feb 2003
Posts: 10886
Location: Bratislava, Slovakia

PostPosted: Tue Jun 12, 2018 12:02 pm    Post subject: Reply with quote

Soltten da die längeren Strings nicht als erstes ersetzt werden?

Roman
_________________
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
Back to top
View user's profile Send private message Send e-mail
Stefan2
Power Member
Power Member


Joined: 13 Sep 2007
Posts: 1926
Location: Europa

PostPosted: Tue Jun 12, 2018 12:21 pm    Post subject: Reply with quote

Hacker wrote:
Soltten da die längeren Strings nicht als erstes ersetzt werden?

Roman



Die Problematik hatte ich ansatzweise beim normalen Replace(),
aber beim RegExReplace matche ich ja auf \bPattern\b,
das funktionierte bei meinen simplen Tests sehr gut
und matcht nicht auf ein einzelnes <i> innerhalb von zB <iii>
sondern nur auf irgendwie "nicht-Zeichen" begrenzte Zeichengruppen.
(also Wortgrenzen ==> Leerzeichen, Zeichenketten-anfang bzw. -ende usw., quasi eine "[X] Nur ganzes Wort" Option)





Für andere Leser:
\b == Steht für eine Wortgrenze. Wortgrenzen sind an den Stellen, wo kein anderes Wortzeichen vor oder hinter einem Wortzeichen steht.
https://developer.mozilla.org/de/docs/Web/JavaScript/Guide/Regular_Expressions

The metacharacter \b is an anchor like the caret and the dollar sign.
https://www.regular-expressions.info/wordboundaries.html




 
_________________
The destination is one thing. Getting there is everything.
Back to top
View user's profile Send private message
Hacker
Moderator
Moderator


Joined: 06 Feb 2003
Posts: 10886
Location: Bratislava, Slovakia

PostPosted: Tue Jun 12, 2018 1:05 pm    Post subject: Reply with quote

Stefan2,
Ach, stimmt. Mein Fehler.

Roman
_________________
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Total Commander (Deutsch) All times are GMT - 6 Hours
Page 1 of 1

 
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


Imprint/Impressum: This site is maintained by Ghisler Software GmbH
Privacy Policy | Datenschutzerklärung | Politique de Confidentialité

Using phpBB © phpBB Group