crazycat-1
Goto Top

Text innerhalb einer Datei verschieben

Text einer beliebig langen Datei aus der letzten Zeile in eine bestimmte Zeile des Textes einfügen

Mein Problem ist folgendes:

Aus 2 verschiedenen Textdateien wird eine Datei zusammengestellt.

Der Text der 2. Datei wird dabei natürlich an die erste Datei angehängt.

Der Eintrag der letzten Zeile der neuen Datei muss nun in die 8. Zeile verschoben werden (also nach der 7. Zeile eingefügt) und die restlichen Zeilen sollen dabei nicht überschrieben werden.

Das Problem ist das die Länge der Dateien und der Dateiname nicht bekannt sind, lediglich die Dateierweiterung bleibt konstant.


Der Batch soll außerdem in einem anderen Verzeichnis aufgeführt werden, als dem Verzeichnis in dem die Dateien liegen.

Wie kann man dieses Problem lösen?

edlin würde zwar eine Reihe von geeigneten Befehlen anbieten, allerdings kann ich diese irgendwie nicht über eine Batch - Routine laufen lassen und miteinander verknüpfen.

Content-Key: 34195

Url: https://administrator.de/contentid/34195

Printed on: April 26, 2024 at 17:04 o'clock

Member: Lars1082
Lars1082 Jun 14, 2006 at 10:14:11 (UTC)
Goto Top
Hi CrazyCat

Versuch es doch mal mit einem VBS-Script!
Hier müsstest du dir dafür alles zusammensuchen können!
http://www.quaschtel.de/wsh/

Gruß Lars
Member: CrazyCat-1
CrazyCat-1 Jun 14, 2006 at 10:28:33 (UTC)
Goto Top
Hm, so wirklich hat mich deren Beschreibung nicht weitergebracht.

Sie schreiben zwar offenbar gerne in der Registry rum, aber Texte verschieben sie im allgemeinen nicht.
Member: CrazyCat-1
CrazyCat-1 Jun 14, 2006 at 12:47:15 (UTC)
Goto Top
So, 2 Zusätze:

erstens ist es nicht die letzte Zeile, sondern die vorletzte (die letzte Zeile ist leer)
zweitens könnte ein Suchbegriff eingesetzt werden, wenn ich nur wüßte wie, da die Zeile immer mit den 5 gleichen Zeichen beginnt


Hat vielleicht jetzt jemand eine Idee?
Mitglied: 6890
6890 Jun 15, 2006 at 08:54:14 (UTC)
Goto Top
hallo,

ich hätte eine, aber leider nur in perl:
#!C:/perl/bin/perl -w

use strict;

## die 2 dateien öffnen
open DATEI1, "<Pfad zu Datei eins" || die "$!";  
open DATEI2, "<Pfad zu Datei zwei" || die "$!";  

## in 2 arrays übergeben
my @array1 = <DATEI1>;
my @array2 = <DATEI2>;

## leere zeilen entfernen
chomp(@array1);
chomp(@array2);

## die 2 alten dateien schliessen
close(DATEI1);
close(DATEI1);

## neue datei aus den 2 alten
my @neueDatei = (@array1, @array2);

## letzte zeile entfernen
my $letzte_zeile = pop(@neueDatei);

## an 7er stelle hinzufügen
splice(@neueDatei,7,0,$letzte_zeile);

## neue datei schreiben
open NEUEDATEI, ">Pfad zur neuen Datei" || die "$!";  
foreach (@neueDatei) {
  print NEUEDATEI $_ , "\n";  
  }
close(NEUEDATEI);

hoffe ich konnte helfen


mfg godlike P
Member: CrazyCat-1
CrazyCat-1 Jun 22, 2006 at 09:48:45 (UTC)
Goto Top
Das Perl - Skript hilft mir nur bedingt.

Ich kann es zwar auf dem loaklen Rechner laufen lassen, aber auf dem Server belegt es zuviel Ressourcen.

Ich habe das Problem daher etwas unfein gelöst.

Ich splitte einfach die Datei in mehrere kleine Dateien durch Suchbegriffe und füge dann die kleinen Dateien wieder zu einer großen zusammen.