PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Systeminformation unter Kylix?



nsamaster
29-07-2002, 20:48
Hi!

Wie kann ich unter Linux verschiedene Systeminformationen erfahren bzw. programmieren? Unter Delphi gab es eine Funktion mit der man z.B. die Größe der HD bestimmen kann (GetDiskSize) aber unter Linux (Kylix)???
Ich glaube unter Linux werden die ganzen Systeminformation über das /proc Verzeichniss abgewickelt, stimmt das? Und wie greif ich auf diese funktionen zu? Kennt jemand ein Stichwort über das ich mich in Kylix belesen kann?

ComSubVie
29-07-2002, 21:18
system( "df | grep <partitionsname>" ); oder so auf die art ;)

anda_skoa
29-07-2002, 21:59
Original geschrieben von ComSubVie
system( "df | grep <partitionsname>" ); oder so auf die art ;)

Dafür haben die sicher eine Abstraktion :)

@nsamaster
Vielleicht gibt es so etwas wie ein System Object.
Oder ein File, Dir oder Disk Object, was weiß ich.

Da kann dir einer der Kylixer sicher besser helfen.

Ciao,
_

nsamaster
30-07-2002, 20:45
Okay, ich werd mich mal umsehen, falls ich was finde, melde ich mich wieder zurück!

nsamaster
05-08-2002, 15:17
Also, es gibt ein Objekt Namens TSysinfo, dazu ist es aber nötig die Unit Libc mit einzubinden.
Allerdings bekommt man nicht sehr viele Informationen zusammen, wie z.B. welcher CPU und welche Frequenz, daran arbeite ich aber noch...

anda_skoa
05-08-2002, 16:51
Hey, coole Sache!

Danke für deine Bemühungen, Kylix Infos gibts hier leider noch nicht so viele.

Ciao,
_

ponzellus
05-08-2002, 19:42
hi

mit kylix kenn ich mich auch nicht besonders aus, aber so wie ich das bisher verstanden habe, soll kylix doch mit delphi mittlerweile vollstaendig kompatibel sein, also die gleichen klassen haben, etc... - dann duerfte das doch kein problem sein :)

sonst bleibt ja noch /proc/ ;)

MfG ponzellus

nsamaster
09-08-2002, 11:01
Eben, da ist ja das Problem, das Kylix eben nur fast kompatibel zu Delphi ist. Hier fehlen halt einige Klassen. Z.B. wie ich die Information über die Festplatte bekomme und weitere. Das Problem ist das Linux nicht die selben bzw. gar keine Befehle in der API hat wie das Windows hat.

anda_skoa
09-08-2002, 17:22
Da wird sich Borland bemühen müssen, für beide Plattformen eine einheitliche API zuschaffen, so dass der Entwickler wenn möglich nicht auf System APIs zugreifen muß.

Die Linux API Funktion für Informationen über das Filesystem ist statfs deklariert in <sys/vfs.h>

Vielleicht gibt es ja eine Möglichkeit in Delphi, auf C APIs des Systems zuzugreifen.

Hmm, ich sollte mir mal Delphi/Kylix ansehen, da kann man noch richtig Pionierarbeit machen :cool:

Ciao,
_

nsamaster
09-08-2002, 22:45
Das will ich doch hoffen, das wir Pionierarbeit schaffen!

Die Datei muß ich mir mal ansehen, aber leider verstehe ich nicht so viel von C. Ich hab da auch noch ne C-Datei rumliegen, die CPU-Informationen ermittelt. Leider hab ich noch keinen ordentlichen C zu Pascal Converter gefunden, von daher ist es sehr mühselig den Code zusammen zu basteln...

nsamaster
13-08-2002, 01:24
Mhhh... So weit, so gut. Jetzt stehe ich vor'm nächsten Problem: Wie Parse ich einen String? Der String sieht so aus: "blabkabka huste : b1" ich möchte den Wert "b1" rausbekommen, aber wie? Jedes Zeichen abfragen und dann die besagten Zeichen speichern? Da muß es doch noch einen anderen Weg geben oder?

anda_skoa
13-08-2002, 09:32
Hmm, String bearbeiten war in Pascal eigentlich nicht schwierig, wenn ich mich an meine TurboPascal Zeiten erinnere :)

Am besten nach ":" suchen, den restlichen Substring nehmen.

In Qt und Java gibts dann noch Funktionen, um Leerzeichen vorne und hinten abzuschneiden, aber das geht in Delphi wahrscheinlich auch.
Sonst muß man es halt "zu Fuß" machen, mit einer Schleife.

Ciao,
_

peschmae
13-08-2002, 12:13
unter delphi heisst das leerzeichenabschneiden
trim() oder so (es gibt auch ein lefttrim() oder vielleicht auch trimleft(), weis das nicht mehr so genau)

MFG Peschmä

P.S. die funktion zum : - finden heisst doch indexOf oder so!?
Im übrigen ist die Hilfe in Delphi (keine ahnung wies da bei kylix steht) meist wirklich gut!

ponzellus
14-08-2002, 18:22
hi
ich wuerds in delphi so machen:

i := pos('bs1',orig_string);
new_string := copy(orgi_string,i,length(orig_string));

pos liefert den index im string, wo der substring (bs1) das erste mal gefunden wurde und copy liefert den teil eines strings zurueck, angefangen bei i und max. length(orgi_string) stellen weiter :)

MfG ponzellus

nsamaster
14-08-2002, 23:05
Danke für eure Tipps! Ich werde ein wenig rumbasteln und mich wieder melden!

@ComSubVie:

was meinst du mit dem Befehl: <<system("df | grep <partitionsname>" );>>

Den hab ich leider unter Kylix nicht gefunden!

peschmae
15-08-2002, 11:18
system() ist unter c/c++ die fkt zum aufruf externer programme..., (d.h. das zeugs forkt automatisch und überschreibt den kindprozess mit dem aufzurufenden program)

wie die entsprechende kylix - funktion heisst, oder obs ne c++-header - konversion gibt, weiss ich net, das musst du in der doku nachschauen

MFG Peschmä

nsamaster
15-08-2002, 11:45
Ach so! Ich hab mich nämlich schon d... und d... gesucht!