PowerShell: Datei zeilenweise alternierend aufteilen

Bild Tipps & Tricks zu den Dynamics NAV Versionen
Hier bitte keine Fragen stellen, sondern nur bereits vorhandene Tricks veröffentlichen.
Forumsregeln
Impressum • Community-Knigge • Nutzungsbedingungen • Datenschutzrichtlinie
Hier bitte keine Fragen stellen, sondern nur bereits vorhandene Tricks veröffentlichen.

PowerShell: Datei zeilenweise alternierend aufteilen

Beitragvon Kowa » 26. März 2015 11:27

Da im Translator Hub (Nachtrag: abgelöst durch DTS) die Quell- und Zielsprache in getrennten Dateien verwaltet werden können (Option Monolingual Documents) und dabei anhand der Zeilennummern korrespondieren müssen (entgegen der NAV-üblichen Vorgehensweise, alle Sprachen in einer Datei zu speichern) habe ich hier eine Funktion erstellt, die eine Datei zeilenweise alternierend auf 2 Dateien aufteilt.
Ausgangsdatei (DEU und FRA Captions ĂĽber Hilfstabelle aus NAV exportiert, dann in Unicode UTF-8 konvertiert)
DEUFRATranslation.png

Anzeige zur Laufzeit
DEUFRATranslation2.png
DEUFRATranslation2.png (9.53 KiB) 866-mal betrachtet

Die beiden erzeugten separaten Dateien:
DEUFRATranslation3.png


Beim Export der Quelldatei muss natĂĽrlich darauf geachtet werden, dass auch immer eine Ăśbersetzung vorhanden ist, also Quell-und Zielsprache durchgehend alternierend vorhanden sind.

Variante 1: Mit festen Dateipfadangabe in der Funktion
Code: Alles auswählen
function SplitAlternatingLines
 {
 $lines = Get-Content C:\Temp\DEUFRA_Translation_UTF8.txt | Measure-Object –Line
 $Nooflines = $lines.Lines
 write-host "File has $Nooflines lines"

 IF (Test-Path C:\Temp\evenlines.txt) {Remove-Item C:\Temp\evenlines.txt}
 IF (Test-Path C:\Temp\unevenlines.txt) {Remove-Item C:\Temp\unevenlines.txt}

 for ($i = 0; $i -le $lines.Lines; $i++)
 {
  $Currline = (Get-Content C:\Temp\DEUFRA_Translation_UTF8.txt)[$i]
  if ($i%10 -eq 0) {Write-Host "Splitting line $i of $Nooflines"}
  if (($i%2 -eq 0) -or ($i -eq 0))
   {out-file C:\Temp\evenlines.txt -inputobject $Currline -force -append -Width 500 -Encoding utf8}
  else
  {out-file C:\Temp\unevenlines.txt -inputobject $Currline -force -append -Width 500 -Encoding utf8}
 }
}


Variante 2: Mit freier Dateipfadangabe als Funktionsparameter mittels $args
Code: Alles auswählen
    function SplitAlternatingLines2
     {
     $lines = Get-Content $args | Measure-Object –Line
     $Nooflines = $lines.Lines
     write-host "File has $Nooflines lines"

     IF (Test-Path C:\Temp\evenlines.txt) {Remove-Item C:\Temp\evenlines.txt}
     IF (Test-Path C:\Temp\unevenlines.txt) {Remove-Item C:\Temp\unevenlines.txt}

     for ($i = 0; $i -le $lines.Lines; $i++)
     {
      $Currline = (Get-Content $args)[$i]
      if ($i%10 -eq 0) {Write-Host "Splitting line $i of $Nooflines"}
      if (($i%2 -eq 0) -or ($i -eq 0))
       {out-file C:\Temp\evenlines.txt -inputobject $Currline -force -append -Width 500 -Encoding utf8}
      else
      {out-file C:\Temp\unevenlines.txt -inputobject $Currline -force -append -Width 500 -Encoding utf8}
     }
    }

Tags: UTF8
GruĂź, Kai

Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, Messenger oder Telefon! DafĂĽr ist dieses Forum da.

Download: Dynamics NAV Object Text Explorer (Alternativlink). MVP Alumni
Benutzeravatar
Kowa
Moderator
Moderator
 
Beiträge: 7835
Registriert: 17. Juni 2005 17:32
Wohnort: Bremen
Realer Name: Kai Kowalewski
Arbeitsort: Osterholz-Scharmbeck
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics 365
Microsoft Dynamics Version: BC, NAV 2018 bis Navision 2.01

Re: PowerShell: Datei zeilenweise alternierend aufteilen

Beitragvon Kowa » 31. März 2015 18:02

Wenn die Dateien in den Translator Hub hochgeladen werden sollen und AbkĂĽrzungspunkte vorhanden sind, empfiehlt es sich, aufbauend auf den Einzeldateien eine XLIFF zu erstellen und statt diesen beiden hochzuladen. Die AbkĂĽrzungspunkte in den Einzeldateien werden sonst dort als Satzende interpretiert und verderben fĂĽr den betroffenen und den Folgesatz dann die Synchronisation.
GruĂź, Kai

Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, Messenger oder Telefon! DafĂĽr ist dieses Forum da.

Download: Dynamics NAV Object Text Explorer (Alternativlink). MVP Alumni
Benutzeravatar
Kowa
Moderator
Moderator
 
Beiträge: 7835
Registriert: 17. Juni 2005 17:32
Wohnort: Bremen
Realer Name: Kai Kowalewski
Arbeitsort: Osterholz-Scharmbeck
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics 365
Microsoft Dynamics Version: BC, NAV 2018 bis Navision 2.01


ZurĂĽck zu NAV Tipps & Tricks

Wer ist online?

Mitglieder in diesem Forum: Trendiction [Bot] und 1 Gast