Löschen von ersten beiden Zeichen in einer Zeile
Hallo
Ich hab hier eine ziemlich große Textdatei vor mir, meine Aufgabe ist, die ersten beiden Zeichen jeder Zeile zu löschen.
Beispiel
45678
45778
45456
45777
45908
45798
....
gibt es irgendeinen Code, mit dem ich die ersten beiden Charaktere löschen kann? (45 einfach ersetzen geht nicht, weil die theoretisch öfters auch mitten drin vorkommt.) Es ist wichtig, dass nur die ersten beiden Ziffern jeder Zeile gelöscht werden!
Grüße
5 Antworten
Hallo Thomasdir,
wie man das korrekt lösen könnte, weiß ich nicht.
Aber wenn du die Datei nicht mehr bearbeiten musst, könntest du einen Screenshot (Bildschirmfoto machen), (Druck bzw. Print-Taste, Paint öffnen, bearbeiten, einfügen,als JPG-Datei speichern) und anschließend mit "Freistellen" einen Ausschnitt herstellen, der die ersten beiden Zeichen nicht mehr enthält.
Es gibt auch Programme wie "Greenshot", mit denen man direkt einen Ausschnitt herstellen kann.
Dein Beispiel hier unten so im Bild.

Danke, aber die Datei muss danach noch bearbeitet werden. Sind Koordinaten die in ein GIS müssen. :)
Mit PHP:
#!/usr/bin/php
<?php
$fileIn = @fopen("datei_in.txt", "r");
$fileOut = @fopen("datei_out.txt", "w");
while(!feof($fileIn)) {
$line = substr(fgets($fileIn), 2);
fwrite($fileOut, $line);
}
fclose($fileIn);
fclose($fileOut);
echo "Done.\n\n";
?>
Wie das unter Windows geht, weiß ich nicht. Unter Linux und Mac kann man das Script per Terminal ausführen, indem man ./script.php eingibt (vorher die Ausführen-Rechte setzen per chmod 777 script.php)
Lass das mal denn du bräuchtest auch noch einen virtuellen Server (PHP-Interpreter). Ich hab dir das mal mit JavaScript gemacht, dafür brauchste nichts außer nen Browser ;)
Das PHP Script läuft bei mir in 5 Sekunden durch (1,2 Millionen Zeilen). Neben einer PHP-Installation auf Windows hättest du noch folgende weitere Möglichkeiten:
- Ubuntu DVD brennen und davon booten (das System kann direkt von DVD ohne Installation verwendet werden)
- Ubuntu in einer virtuellen Maschine installieren (VirtualBox)
Dann nur noch schnell PHP nachinstallieren per sudo apt-get install php5 und dann kannste das Script ausführen.
Ja, es wär mit PHP auch einfacher, aber der Weg bis zur entgültigen Benutzung des Scripts ist halt länger und komplizierter. Deswegen habe ich mich auch dafür entschieden, es in JS zu schreiben: Seite öffnen, eingeben, fertig!
Und er hat es warscheinlich eh schon fertig. Ich glaub ~40mal CopyNPaste brauch nicht nen ganzen Tag :D
Ich kann dafür das Programm Notepad++ empfehlen. Dieses besitzt ein Feature, mit dem man die gleiche Spalte in mehreren Zeilen manipulieren kann. Das heißt man kann z.B. in allen Zeilen die ersten zwei Zeichen löschen oder in jeder Zeile an die 3. Stelle ein "e" schreiben.
Falls du es selbst programmieren möchtest (laut Tag), würde ich dir die Methode "Substring" der Klasse "String" empfehlen (falls mit Java oder C# programmiert werden soll).
Selbst programmieren kann ich nicht, habe leider nur wenig Ahnung von Java, c ++ etc.)
Wie heißt denn dieses Feature, weißt du das? Kann das nicht finden, bzw ich komme da gerade nicht drauf.
Das geht so:
- Datei mit Notepad++ öffnen
- Cursor ganz nach oben links vor das erste Zeichen setzen
- Den Scrollbalken ganz nach unten ziehen
- Shift und Alt gedrückt halten
- Mit der Maus in der letzten Zeile hinter das zweite Zeichen klicken
- Shift und Alt loslassen
- Backspace oder Entf drücken
Mir stürzt Notepad++ allerdings ab bei der Zeilenanzahl.
Ins Word Kopieren, Text in Tabelle formatieren und für jede Ziffer ne eigene Spalte. Dann einfach die ersten beiden Spalten löschen und Du bist überall die 2 Zeichen am Zeilenanfang los.
Beim "Trennzeichen" wirst Du sicher etwas fummeln müssen; je nach Word-Version kannst Du Ziffern nicht trennen. Im Zweifel kannst Du Dir hierfür ein Macro runterladen - ist kostenlos. ;-)
Bisher funktioniert es leider noch nicht, da es doch 1,2 Mio Zeilen sind, dauert das entsprechend, bis die in Word einfügt sind. Ist eine .xyz Datei, deswegen kann ich die nicht direkt in Word öffnen. Bin aber gespannt, ob das mit der Tabelle funktioniert!
Ich könnte dir da was in PHP oder JavaScript schreiben (Webseite). Meld dich bei Interesse.
Wenn ich gar nicht mehr weiter komme, dann meld ich mich bei Dir!
Vielen Dank! :)
Das "st" sollte ein Link sein :D Der Link scheint aber eh nicht zu gehen...
Hier nochmal richtig: http://jsbin.com/nihalayenu/1/
Vielen Dank! Script funktioniert sehr gut, muss das jetzt etappenweise machen, so viel auf einmal verträgt der glaub ich nicht :)
Wie jetzt? Hängt der sich bei einem zu großem Text auf? Ich habs auch nur mit ca. 6 Zeilen getestet :D
Also ich habs jetzt mal mit ca. 3500 Zeilen probiert -> hat einwandfrei funktioniert...
jepp, aber um die 30000 wirds happig...ich hab insgesamt 1,2 Mio Zeilen zu bearbeiten :)
:O
Wow, ich hab sogar noch 20k probiert und hat gut geklappt, aber ich hätte niemals mit mehr als 3000 zeilen code gerechnet! :D
ist echt ne riesige datei...leider :) aber dein Weg hätte ansonsten echt sehr gut funktioniert, vielen Dank nochmals dafür!
Danke! werde ich auch gleich ausprobieren. Dafür bräuchte ich NetBeans oder ähnliches oder?