Autor Beitrag
GigaNeko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51



BeitragVerfasst: 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 user profile iconMotzi: 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
BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 21.05.05 12:29 
user profile iconblackdrake hat folgendes geschrieben:
www.google.de/search...mp;btnG=Google-Suche
Wieso in die Ferne schweifen? Suche in: Delphi-Forum, Delphi-Library 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5285
Erhaltene Danke: 29

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: 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 :wink:
stifflersmom
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 194

XP /XP PRO/ SuSE div.
D1 - D7, BDS 2006
BeitragVerfasst: Sa 21.05.05 13:15 
user profile iconF34r0fTh3D4rk 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 :wink:


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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5285
Erhaltene Danke: 29

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: 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 :D
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: 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 :D

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Sa 21.05.05 13:49 
z.B. so:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5285
Erhaltene Danke: 29

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Sa 21.05.05 13:50 
ich habe grad 2 funktionen geschrieben die für das thema interessant sein dürften:
ausblenden volle Höhe Delphi-Quelltext
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: 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:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5285
Erhaltene Danke: 29

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: 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
ausblenden 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 ! :D


Zuletzt bearbeitet von F34r0fTh3D4rk am Sa 21.05.05 14:08, insgesamt 2-mal bearbeitet
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: 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