Entwickler-Ecke

Dateizugriff - Grösse einer Textdatei in Memo ermitteln


Darth Sitthiander - Sa 18.03.06 19:15
Titel: Grösse einer Textdatei in Memo ermitteln
Ich hoffe ich habe hier dn richtigen Thread erwischt. Also folgendes. Ich habe sowas einfaches wie eine Art WordPad porgrammiert und möchte nun, dass es mir in einem Label anzeigt, wie gross die spätere Textdatei der Memo wird. Also genauer:
Ich habe eine Memo in die ich schreiben kann, ich habe einen label und einen button und den inhalt der memo in eine Textdatei zu speichern. das gelingt perfekt. Allerdings möchte ich nun, das zum vorherein schon im label steht wie gross die datei später wird. Das soll dann in einem Timer geschehen. Kann mir einer helfen? Danke im Vorraus.


AXMD - Sa 18.03.06 19:19

Length(Memo1.Text) sofern es ein Memo, und kein RichEdit ist

AXMD


Marco D. - Sa 18.03.06 19:19
Titel: Re: Grösse einer Textdatei in Memo ermitteln
user profile iconDarth Sitthiander hat folgendes geschrieben:
das zum vorherein schon im label steht wie gross die datei später wird. Das soll dann in einem Timer geschehen.

Ich verstehe nicht, was in dieser Problematik ein Timer zu suchen hat :gruebel:
Theoretisch: Ein Zeichen hat ein Byte. Dann gehst du jede Zeile durch, zählst die Zeichen und addierst das ganze.


proprogrammierer - Sa 18.03.06 19:19

wie groß in byte oder in zeilen oder was?


Darth Sitthiander - Sa 18.03.06 19:49

Hey danke jetzt geht. Allerding isses noch ncht so genau. Wisst ihr wie ich dezimalzahlen kriege. Ich hab flaottostr probiert. das ging ja auch, aber es gab keine dezimalzahlen. Dann hab ich floattostrF probiert, und das ging nicht mehr:


Delphi-Quelltext
1:
2:
3:
Label1.caption:='Anzahl Wörter: '+IntToStr(count(Memo1.Text));
Label2.caption:='Anzahl Zeilen: '+IntToStr((Memo1.Lines.Count));
Label3.caption:='Grösse der Textdatei: '+IntToStr((Length(Memo1.Text)))+' Bytes'+' = '+Inttostr((Length(Memo1.Text))div 1024)+' KB';


Darth Sitthiander - So 19.03.06 18:10

Hat denn niemand ne lösung? :(
Schuldigung für den doppelpost, aber ich hätte gern ne antwort.

ich habe den code jetzt so:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TWritepro.Timer1Timer(Sender: TObject);
var
a:string;
b:integer;
begin
b:=(Length(Memo1.Text))div 1024;
a:= CurrToStrF(b, ffNumber, 3);
Label1.caption:='Anzahl Wörter: '+IntToStr(count(Memo1.Text));
Label2.caption:='Anzahl Zeilen: '+IntToStr((Memo1.Lines.Count));
Label3.caption:='Grösse der Textdatei: '+IntToStr((Length(Memo1.Text)))+' Bytes'+' = '+a+' KB';
end;


Aber er schrieibt es so:

Grösse der Textdatei: 2900 Bytes = 2.000 KB

Danke im Vorraus

Ich hätt aber gern wenn er es so schreiben würde:

Grösse der Textdatei: 2900 Bytes = 2.832 KB


AXMD - So 19.03.06 18:17

Du darfst dich diesbezüglich nicht wundern, wenn du div 1024 rechnest. Du musst 1024 rechnen und dann den Wert in einen String umwandeln, dann geht's.

AXMD

PS. Schiebepostings sind nach (ca. ;) ) 24 Stunden erlaubt.


Darth Sitthiander - So 19.03.06 18:21

LOL, danke. Es sind eben die kleinsten Dinge die das grösste Problem ausmachen^^ ;-)

Das mit den Schiebepostings wusst ich nicht danke.


raiguen - So 19.03.06 18:30

Moin :-)

Zitat aus der OH zu arithmetischen Operatoren:
Der Wert von x div y entspricht dem Wert von x/y, abgerundet in Richtung Null bis zum nächsten Integer-Wert.
Mit anderne worten: du wirst nie einen Dezimal-, sondern immer nur ein Integerwert herausbekommen.

Gruß

//EDIT: arrghhh, zu spät :-(


Darth Sitthiander - So 19.03.06 18:42

Was ist di OH? Sorry wenn ich der einzige hier bin der das nicht weiss.


Born-to-Frag - So 19.03.06 19:06

user profile iconDarth Sitthiander hat folgendes geschrieben:
Was ist di OH? Sorry wenn ich der einzige hier bin der das nicht weiss.


Delphi Online Hilfe ;)


greetz


Darth Sitthiander - So 19.03.06 19:13

Sorry aber wo find ich die? xD^^


Danniolo - So 19.03.06 19:55

Hilfe -> Inhalt
bzw.:
Help -> Delphi Help
bzw.:
Hirn anschalten


Darth Sitthiander - So 19.03.06 20:00

user profile iconDanniolo hat folgendes geschrieben:
Hilfe -> Inhalt
bzw.:
Help -> Delphi Help
bzw.:
Hirn anschalten


dachte es sei sowas wie wikipedia