Die Programmiersprache Ruby

Blog| Forum| Wiki  

Inhaltsverzeichnis

Dateibearbeitung Beispiel 1

Aufgabe

  1. Öffne alle Dateien eines Ordners mit der Endung .kk
  2. lies jeweils die ersten 5 Zeilen
  3. Ersetze jeweils "ABC" durch "XYZ"

Lösung

1
2
3
4
5
6
7
8
Dir['*.kk'].each do |d|
    next unless File.file?(d)
    data = File.readlines(d)
    for i in 0..4
        data[i] = data[i].gsub('ABC', 'XYZ') if data[i]
    end
    File.open(d, 'w') { |f| f.write data.join }
end


Anmerkungen

Dir['*.kk'] liefert ein Array mit allen Dateien und Verzeichnissen des aktuellen Verzeichnisses zurück, die auf ".kk" enden. Verzeichnisse können aber nicht wie Dateien geöffnet werden. Deshalb werden mit der File.file? Abfrage nur Dateien bearbeitet.

Weblinks


Dateibearbeitung Beispiel 2

Aufgabe

  1. zeilenweise Bearbeitung einer Datei

Lösung

Einlesen der Datei in ein Array, durch das man dann iterieren kann, um die einzelnen Zeilen einer Eingabedatei zu verarbeiten.

1
2
3
4
5
6
7
8
infile = File.new("eingabedatei.txt", "r")
linearray = infile.readlines
infile.close
for i in 0...linearray.length # obs! drei Punkte! ansonsten: 0..linearray.length - 1
  print linearray[i]
end
# oder natürlich: 
linearray.each{|i| print i}