rubyforen.de
http://forum.ruby-portal.de/

Häufigkeitstabelle aus Datei erstellen
http://forum.ruby-portal.de/viewtopic.php?f=11&t=26
Seite 1 von 1

Autor:  nilzn [ 18 Nov 2002, 13:33 ]
Betreff des Beitrags:  Häufigkeitstabelle aus Datei erstellen

Ein kleines Script um sich die anzahl von Zeichen die in einem Text vorkommen, auszugeben.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48



class CHRTabelle
def initialize
@chrs = Array::new
@inputData = String::new
@outputData = String::new
end
def countChrs txt = @inputData
chrs = Array::new
txt.size.times do |i|
chrs << txt[ i, 1 ].downcase
end
chrs.uniq!
chrs.sort!
chrs.each do |chr|
chrAnz = txt.count( chr ).to_s
chr = 'LEERZEICHEN' if chr == " "
chr = 'UMBRUCH' if chr == "\n"
@outputData << "'#{ chr.chomp }'|#{ chrAnz }\n"
end
@chrs = chrs
end
def fromFile
path = ''
while !FileTest.file?( path )
puts 'Den Pfad zur Textvorlage eingeben ( d:\xyz\text.txt )'
path = gets
path.chop!
break if path == 'exit'
end
f = File.new( path, 'r' )
@inputData = f.read
end
def toFile txt = @outputData
path = 'output.data'
puts 'Den Dateinamen der Tabellen Datei'
path = gets
path.chop!
f = File.new( path, 'w' )
f.puts txt
end
end
tbl = CHRTabelle.new
tbl.fromFile
tbl.countChrs
tbl.toFile

Autor:  leobm [ 19 Nov 2002, 17:08 ]
Betreff des Beitrags: 

ich habe mal zum Spaß die countChrs Methode überarbeitet.
Ist nicht besser. Ich wollte nur mal mit hashes etwas rumspielen.

Gruß, leobm



1
2
3
4
5
6
7
8
9
10
11
12
   def countChrs txt = @inputData
chrhash = Hash::new
txt.split('').each do |chr|
chr.downcase!
chrhash.has_key?(chr) ? chrhash[chr]+=1 : chrhash[chr]=1
end
chrhash.sort.each do |key,value|
key="LEERZEICHEN" if key==" ";
key="UMBRUCH" if key=="\n";
@outputData << "'#{key}'|#{value}\n"
end
end

Autor:  nilzn [ 21 Nov 2002, 11:54 ]
Betreff des Beitrags:  jo

iss schmaler, werd ich mal uebernehmen, wenns recht is
thx

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/