| Autor |
Beitrag |
GigaNeko
      
Beiträge: 51
|
Verfasst: Sa 21.05.05 12:21
ich habe ein program geschrieben, dass zählen kann wie viele und welche buchstaben in einem text vorkommen.
jetzt möchte ich aber noch programmieren, dass per buttonklick eine txt-datei (statistik_filename.txt) erstellt wird in die automatisch folgendes hineingeschrieben wird:
in der ersten zeile soll der filname der txt-datei stehen und das wort statistik.
in den zeilen darunter soll jeweils alphabetisch ein buchstabe stehen und dahinter die zahl der häufigkeint.
für die häufigkeint der einzelnen buchstaben habe ich integervariabeln angelegt (a,b,c,d...z).
so stell ich mir das vor:
statistik_filname.txt -Statistik-
a 123
b 34
c 54
d 324
.
.
.
z 32
könnt ihr mir helfen? ich weiß nämlich nicht wie ich das programmieren soll, dass eine txt-datei angelegt wird und dieses dor hineingeschrieben wir. Moderiert von Motzi: Topic aus Sonstiges verschoben am Sa 21.05.2005 um 13:26
|
|
blackdrake
Hält's aus hier
Beiträge: 8
Windows XP Professional
D7 Enterprise
|
Verfasst: Sa 21.05.05 12:26
Hallo.
Die Funktionen, die du brauchst sind WriteLN, ReadLN, AssignFile und CloseFile.
www.google.de/search...mp;btnG=Google-Suche
Gruß
blackdrake
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Sa 21.05.05 12:29
Wieso in die Ferne schweifen? WRITELN
Alternativ könntest Du eine TStringList mit der entsprechenden Mehtode SaveToFile verwenden.
Du solltest außerdem überlegen, ob Du wirklich für jeden Buchstaben eine Variable benutzen willst oder ob es nicht besser ist, ein Array zu verwenden.
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
F34r0fTh3D4rk
      
Beiträge: 5285
Erhaltene Danke: 29
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Sa 21.05.05 12:35
| Zitat: |
Alternativ könntest Du eine TStringList mit der entsprechenden Mehtode SaveToFile verwenden.
|
wäre für dich deutlich einfacher und ist auch zu empfehlen 
|
|
stifflersmom
      
Beiträge: 194
XP /XP PRO/ SuSE div.
D1 - D7, BDS 2006
|
Verfasst: Sa 21.05.05 13:15
F34r0fTh3D4rk hat folgendes geschrieben: | | Zitat: |
Alternativ könntest Du eine TStringList mit der entsprechenden Mehtode SaveToFile verwenden.
|
wäre für dich deutlich einfacher und ist auch zu empfehlen  |
Ist für kleine Dateieen (wie in diesem Fall) wirklich zu empfehlen.
Allerdings schadet es bestimmt nicht sich mal näher mit den Dateioperationsfunktionen anzufreunden, denn irgendwann kommt fast jeder an den Punkt, an denen er mit größeren Dateien hantieren muß.
|
|
F34r0fTh3D4rk
      
Beiträge: 5285
Erhaltene Danke: 29
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Sa 21.05.05 13:17
ich musste damals erstmal rauskriegen writeln zu benutzen, ohne den alten inhalt zu lsöchen und ohne die datei erstmal sonstwohin laden zu müssen, naja jetzt weiß ichs ja 
|
|
uall@ogc
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Sa 21.05.05 13:28
ich musste damals auch erstmal rausbekommen wie man delphi startet, einfach nen doppelklick auf die delphi7.exe dann startet es.
naja jetzt weiß ichs ja 
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
delfiphan
      
Beiträge: 2684
Erhaltene Danke: 32
|
Verfasst: Sa 21.05.05 13:49
z.B. so:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| const FileName = 'C:\statistik_filname.txt'; var S: String; A: array[#0..#255] of Integer; I: Integer; C: Char; begin S := 'Hallo, Welt!'; FillChar(A, SizeOf(A), 0); for I := 1 to Length(S) do inc(A[UpCase(S[I])]); with TStringList.Create do try Add(Format('%s -Statistik-',[FileName])); for C := 'A' to 'Z' do Add(Format('%s %d',[c,A[c]])); SaveToFile(FileName); finally Free; end; end; |
|
|
F34r0fTh3D4rk
      
Beiträge: 5285
Erhaltene Danke: 29
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Sa 21.05.05 13:50
ich habe grad 2 funktionen geschrieben die für das thema interessant sein dürften:
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: 49: 50: 51:
| function SaveStringToFile(Str, Filename, FileEx: String): boolean; var TF: Text; begin result := false; if (Filename = '') then exit; assignfile(TF, Filename); if fileexists(Filename) then append(TF) else rewrite(TF); try writeln(TF, Str); finally CloseFile(TF); Result := true; end; end;
function WriteLogFiles(Strings: TStrings; Filename, FileEx: String): boolean; var count, i: integer; str: string; begin result := false; count := 0; str := '00000'; while fileexists(Filename + str + FileEx) do begin inc(count); str := inttostr(count); for i := 1 to (5 - length(str)) do str := '0' + str; if length(str) > 5 then exit; end; Strings.savetofile(Filename + str + FileEx); result := true; end;
procedure TForm1.Button1Click(Sender: TObject); begin if SaveStringToFile(edit1.text, 'C:\TextFile', '.txt') then showmessage('String erfolgreich in Datei geschrieben !'); end;
procedure TForm1.Button2Click(Sender: TObject); begin if WriteLogFiles(Memo1.Lines, 'C:\Log', '.txt') then showmessage('Log Datei erfolgreich geschrieben !'); end; |
|
|
uall@ogc
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Sa 21.05.05 13:58
geht doch auch mit sinnvollen beiträgen warum denn nicht immer so?
trotzdem würd ich das so machen:
Delphi-Quelltext 1: 2: 3: 4:
| s := 'AsasasasasAS'; fm := TFileStream.Create('C:\bla.txt',fmcreate or fmopenreadwrite); fm.write(s[1],length(s)); fm.free; |
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
F34r0fTh3D4rk
      
Beiträge: 5285
Erhaltene Danke: 29
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Sa 21.05.05 14:02
| Zitat: |
(Popov): "du bist eine kleine fette Gurke ... Hat dich deine Mama nicht lieb, daß du mich hier in Diskussionen verwickelst? Wenn du einen haben willst, mit dem du in Zukunft Ärger hast, dann mach weiter so. Mr. Rechtschreibung. Ha."
|
lol, das waren doch nur
| Zitat: |
Füchtigkeitsfehler
|
ok so wie du kann mans auch machen, aber ich habe ja gerade das writeln angesprochen und habs deshalb so gemacht, finde ich auch schon überschaubar und die 2. funktion ist auch ganz nützlich, ok man kann noch hinzufügen, dass man die anzahl der (0) stellen bearbeiten kann, aber naja ....
aber
Delphi-Quelltext 1:
| fm.write(s[1],length(s)); |
schreibt doch in die erste zeile, oder ?
Mein Code fügt immer eine neue Zeile hinzu ! 
Zuletzt bearbeitet von F34r0fTh3D4rk am Sa 21.05.05 14:08, insgesamt 2-mal bearbeitet
|
|
uall@ogc
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Sa 21.05.05 14:07
naja man müsste vorher nen
fm.seek(fm.size,0) machen
und halt noch nen s := s+#13#10;
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|