# textfile im excel einlesen, bearbeiten und zurückspeichern?



## olitheis (23 Juli 2007)

Hallo ich habe hier dieses File mit Bildschirmtexten. Man kann es zwar mit dem Editor öffnen und bearbeiten, jedoch ist das sehr sehr mühsam. Weiß jemand von euch wie ich es z.B. in Excel einlesen kann, entsprechen formatieren, dass ich es in Spalten usw. bearbeiten kann. Danach möchte ich es natürlich wieder in ursprügliche Format zurückspeichern, damit die Formatierung stimmt.

Wäre echt klasse, wenn jemand hier einen Tip hat, der mir die Bearbeitung etwas erleichtern/beschlleunigen könnte.

Vielen Dank
Oli


----------



## volker (23 Juli 2007)

in der datei sind leider keine trennzeichen die sich so ohne weiteres nutzen lassen.

mit eine vbscript liesse sich das sicherlich einlesen und in eine für excel einlesbare datei konvertieren. danach wieder die exportierte exceldatei zurück konvertieren.

weiss ja nicht inwieweit du mit vbscript oder einer hochsprache vertraut bist.

evtl hilft dir das schon.
die kopf/fusszeilen mal ausser ach gelassen.
öffne die datei mit dem texeditor
dann 

```
---suchen-----ersetzen---
---" lang-----"§lang---
---" text-----"§text---
 
die zeile sieht dann so aus
    <mt num="1"§lang="1"§text="Main Menu"/>
 
das lässt sich problemlos in excel einlesen. (trennzeichen ist dan das §)
 
nach excelbearbeitung speichern  (tabs getrennt). dann sieht die zeile so aus
"    <mt num=""1""" "lang=""1""" "text=""Main Menu""/>"
 
bisschen blöd, aber aber auch das bekommt man über suchen ersetzen hin.
(ist jetzt hier ein bisschen schwierig darzustellen)
---suchen-----ersetzen---
---"    -----    ---
---""-----"---
---""-----"---
--- "lang----- lang--- //erstes zeichen links(suchen) ist ein tab. erstes zeichen rechts(ersetzen) ist ein leerzeichen
--- "text----- text--- //erstes zeichen links ist ein tab. erstes zeichen rechts ist ein leerzeichen
 
danach sieht die zeile wieder so aus.
    <mt num="1" lang="1" text="Main Menu"/>"
```


----------



## Onkel Dagobert (23 Juli 2007)

*TextPad ???*

Hallo Oli,



olitheis schrieb:


> ...Man kann es zwar mit dem Editor öffnen und bearbeiten, jedoch ist das sehr sehr mühsam...


Falls das Problem darin besteht dass der Cursor beim Zeilenwechsel auf den Zeilenanfang springt, dann versuche es z.Bsp. mal mit TextPad. Dort bleibt der Cursor bei <up> und <down> in der Spalte.


Gruß, Onkel


----------



## olitheis (24 Juli 2007)

Hallo Volker,
wie gebe ich denn bei Suchen nach im Editor ein *tab* ein, der cursor springt doch dann direkt nach unten?
Gruß
Oli


----------



## Schmiedi (24 Juli 2007)

Hi Oli,

Es geht schon, das ganze im Excel zu bearbeiten. Hab die Datei in einem Editor geöffnet, alles markiert und dann in Excel reinkopiert. Welche Excel-Version verwendest du? Ich hab 2003. Mußt aber den Importassistenen aufrufen, weil als normalen Text bleibt das Blatt einfach leer.

lg Steff


----------



## volker (24 Juli 2007)

olitheis schrieb:


> Hallo Volker,
> wie gebe ich denn bei Suchen nach im Editor ein *tab* ein, der cursor springt doch dann direkt nach unten?
> Gruß
> Oli


 
kommt ein bisschen auf den editor an.
ich mache es meist so,
im text die relevanten zeichen markieren und in die zwischenablage kopieren. beim suchen/ersetzen füge ich diese dann dort ein.

wie siehts bei dir mit hochsprachen / vbscript aus?
wie oft braust du das? wenn nur 1mal dann egal.


----------



## zotos (24 Juli 2007)

Nabend,

ich habe mal ein kleines Makro geschrieben das sich der Sache annimmt.
Mir ist am schluss noch aufgefallen das die Beispiel Datei 
1. im Unicode Format ist. (ich habe das mal berücksichtigt)
2. in der Vorlage fehlen einige Nummern (z.B. Meldung 3 ist ohne Sprache 1) Ich kann mir die Funktion da von nicht erklären und habe da nun einfach ein Leerzeichen benutzt.

Viel Spass damit.

//EDIT: Das mit Unicode habe ich doch noch nicht auf die Reihe bekommen darum habe ich eine Version ohne die Wandlung nun im Anhang.


----------



## olitheis (26 Juli 2007)

@Volker
mit vbscript habe ich noch nichts gemacht.
Aber wie Du es beschrieben hast, hat ganz gut funktioniert. Das ist wenigstens nicht ganz so umständlich.
Diese Datei wird schon etwas öfter bearbeitet, deshalb wäre so ein Makro wie Zotos es vorhat sehr hilfreich. 
@Zotos
die Steuerung erkennt die "neue" datei nicht an. Nach dem Schreiben aus dem Makro heraus ist sie auch wesentlich keiner als das Original.
Gruß
Oli


----------



## zotos (26 Juli 2007)

olitheis schrieb:


> ...
> @Zotos
> die Steuerung erkennt die "neue" datei nicht an. Nach dem Schreiben aus dem Makro heraus ist sie auch wesentlich keiner als das Original.
> Gruß
> Oli




Das mit der Größe kann daran liegen das die original Datei im Unicodeformat vorliegt. und mein erster Versuch die Datei im Unicode zu speichern ist schiefgegangen ;o( 

Aber ich schau mir das noch mal an.

Kannst Du Dir die Datei mit einem Text Editor anschauen?


----------



## olitheis (26 Juli 2007)

Hallo,
im Editor sieht sie "eigentlich" ganz normal aus?

Gruß
oli


----------



## zotos (26 Juli 2007)

Das bekommen wir sicher noch hin.

Ich mach mich mal schlau wie das mit den Unicode Dateien abläuft. Ich habe die Dateien ja mit KDiff verglichen und da ist mir die Miesere ja aufgefallen. 
Die Datei die mein Makro nach öffnen der original Datei und einfachem abspeichern ausspuckt ist eigentlich größer als die original Datei wenn man die Zeichen zählt und nicht die Bytes.

Im Makro habe ich ja Strings im Unicode Format muss das beim Speichern in die Datei nur irgendwie erhalten da VBA das dann in ANSI wandelt ;o(

Haste mal versucht den Inhalt aus der neuen Datei in eine Kopie der original Datei zu kopieren so mit Strg+C und Strg+V ?


----------



## zotos (26 Juli 2007)

Also um genau zu sein ist die Quelldatei im Format "UCS-2 little Endian" was auch immer das bedeutet ;o)

Ich such mal wie man aus VBA heraus so eine Datei erstellt.

die Datei muss mit Hex(FF FE) beginnen un jedes "ANSI" Zeichen ist mit einem Hex(00) erweitert. Bei meinem Unicode test war die null vor dem Zeichen


----------



## zotos (26 Juli 2007)

So nach langem tüfteln habe ich es nun geschafft ;o)

Jetzt muss es aber gehen. Wenn man eine Datei einliest und in eine neue Datei speichert sind diese beide (wenn keine Änderung in Excel vorgenommen wurde) sogar Binär identisch (mit KDiff überprüft).

  Aber bitte immer eine neue Datei erstellen und nicht eine alte überbügeln!

  Viel Spaß damit!

  PS: Spendenkontonummer kann man via PN erfragen ;o)


----------



## olitheis (29 Juli 2007)

Hallo zotos,
das funktioniert prima!!!

Vieklen Dank 
Oli


----------



## zotos (29 Juli 2007)

Freut mich das es funktioniert. 

Ich habe auch etwas über Unicode Dateien lernen können, was mir vielleicht  in Zukunft noch helfen wird.

Viel Erfolg!


----------

