Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TFileStream.Create gibt Error (https://www.delphipraxis.net/172870-tfilestream-create-gibt-error.html)

Drahcir 26. Jan 2013 15:17

TFileStream.Create gibt Error
 
Hab (wiedermal) n bissl und gebastelt und will jetzt ne Schleife die mir eine Ordnergröße angibt ... Dazu muss ich ja rekursiv alle Dateien durchgehen.

Die rekursive Schleife tut es, die Abfrage um Dateiengröße zu ermitteln auch ... fast immer.

Hab ich zum Teil ausm Internet, teils selbst gebastelt:

Delphi-Quellcode:
{*** Funktion um Dateigröße zu ermitteln ***}
function TfrmMain.getDateiGroesse(Dateiname : string): int64;
var Datei : TFileStream;
begin
  result := 0;

  try
    if (Fileexists(Dateiname))
    then begin
      g_pLogFile.Warning('Try to open ' + Dateiname)
      Datei := TFileStream.Create(Dateiname, fmOpenRead OR fmShareDenyNone);
      result := Datei.Size;
    end
    else g_pLogfile.Error('Datei ' + Dateiname + ' exisitiert nicht!')

  finally
    g_pLogFile.Warning('Datei ' + Dateiname + ' wird freigegeben')
    Datei.free;
  end;
end;
{************************}
Dazu muss man sagen, dass in "Dateiname" der vollständige Pfad und Dateiname mitgegeben werden (ja fehlerhafte Variablenbezeichnung).

Bei fast allen Dateien funktioniert das auch, nur wenn ich den durch 'C:\' laufen lasse läuft es erst gut, viele Hundert Dateien werden erfolgreich wieder freigegeben (darunter auch verschiedene xxx.sys-Dateien, zum Beispiel 'C:\config.sys' und 'C:\AMD\..\atdcm64a.sys') nur kommt bei einigen Dateien eine EFOpenError-Exception mit der Meldung, die Datei (Bsp: 'C:\hiberfil.sys') könne nicht geöffnet werden.

Naja hab Google und hier die Suche gefragt und bin nur über Lösungsvorschläge gestolpert, die Datei würde vielleicht nicht exisiteren, ... aber sie tut es auf jeden Fall, hab im Debug geschaut, der Dateiname wird richtig übergeben.

Die Exception wird an der Stelle
Delphi-Quellcode:
Datei := TFileStream.Create(Dateiname, fmOpenRead OR fmShareDenyNone);
aufgerufen.

Mir ist jetzt aufgefallen wenn ich die Datei im Explorer betrachte, kommt das (siehe Bild) rum, kann mir selbst aber keinen Zusammenhang herstellen.
Im Bild gezeigt sind die Dateien config.sys (funktioniert!), hiberfil.sys (funzt nicht), IO.SYS (ebenfalls nicht) und weitere Ordner oben die alle funktioniert haben.

Kann mir wer weiterhelfen? Ich will nicht alle xxx.sys-Dateien ignorieren, was bei ner Ordnergrößenausgabe zu fehlerhaften Werten führt, mir würde es reichen wenn das Programm dokumentiert (g_pLogFile.Error('irgendeine Nachricht'), dass die Datei nicht geladen werden konnte und die Schleife aber nicht abbricht und ne Exception ausspuckt, sondern weiterläuft und als Result dann '0' für die Größe übergeben wird)

Hier noch das Bild: http://www7.pic-upload.de/26.01.13/w583efyvse8o.jpg

mkinzler 26. Jan 2013 15:19

AW: TFileStream.Create gibt Error
 
Die Datei existiert sicherlich( wenn Ruhezustand aktiviert ist), du bekommenst aber kein Zugriff auf sie.

Drahcir 26. Jan 2013 15:26

AW: TFileStream.Create gibt Error
 
Das ich keinen Zugriff bekomme ist mir auch klar ... aber Delphi nicht.

Ich meine wie kann ich vor dem Öffnen der Datei prüfen, ob ich nen Zugriff bekomme oder nicht? denn beim Zugriff selbst, wo er schaut ob er Zugriff bekommt, stürzt er ja ab ...

Klaus01 26. Jan 2013 15:34

AW: TFileStream.Create gibt Error
 
.. Du könntest den Fehler abfangen..

Delphi-Quellcode:
{*** Funktion um Dateigröße zu ermitteln ***}
function TfrmMain.getDateiGroesse(Dateiname : string): int64;
var Datei : TFileStream;
begin
  result := 0;

  try
    if (Fileexists(Dateiname))
    then begin
      g_pLogFile.Warning('Try to open ' + Dateiname);
      try
        Datei := TFileStream.Create(Dateiname, fmOpenRead OR fmShareDenyNone);
      except
        on E:Exception do
          g_pLogfile.Error('Datei ' + Dateiname + E.Message);
      end;
         
      result := Datei.Size;
    end
    else g_pLogfile.Error('Datei ' + Dateiname + ' exisitiert nicht!')

  finally
    g_pLogFile.Warning('Datei ' + Dateiname + ' wird freigegeben')
    Datei.free;
  end;
end;
{************************}
Grüße
Klaus

sx2008 26. Jan 2013 15:35

AW: TFileStream.Create gibt Error
 
Die Dateigrösse bekommst du auch ohne die Datei öffnen zu müssen.
So macht es zum Beispiel auch der Explorer.
Um die Verzeichnisse zu durchsuchen verwendest du bestimmt
Delphi-Quellcode:
FindFirst
,
Delphi-Quellcode:
FindNext
.
In der Struktur
Delphi-Quellcode:
TSearchRec
befindet sich auch die Dateigrösse.

Drahcir 26. Jan 2013 15:45

AW: TFileStream.Create gibt Error
 
Vielen Dank für die schnelle Hilfe :)

Das mit dem ...except... hab ich probiert, gibt mir sowohl in Delphi als auch als Exe ne Exception und der Haltepunkt auf on E... do ... wird nicht ausgelöst.

Ja ich verwende FindFirst und FindNext, Quellcode:

Delphi-Quellcode:
{** Alle Dateien in einem Verzeichnis aufzählen **}
procedure TfrmMain.DateiListe(OrdnerPfad: string; Zielliste: TStrings);
var Rec : TSearchRec;
begin
  Zielliste.Clear;

  if SysUtils.FindFirst(OrdnerPfad + '*', faAnyFile, Rec) = 0 then
  try
    repeat
      if (Rec.Name <> '.') and (Rec.Name <> '..')
      then begin
        if DirectoryExists(OrdnerPfad + Rec.Name)
        then Zielliste.Add(OrdnerPfad + Rec.Name + '\');

        if FileExists(OrdnerPfad + Rec.Name)
        then Zielliste.Add(OrdnerPfad + Rec.Name);
      end;

    until SysUtils.FindNext(Rec) <> 0;
  finally
    SysUtils.FindClose(Rec);
  end;
end;
{**************}
Dann werd ich mir nochmal TSearchRec anschauen ... stimmt der Quellcode denn so oder liegts an dem?

sx2008 26. Jan 2013 16:04

AW: TFileStream.Create gibt Error
 
Zitat:

Zitat von Drahcir (Beitrag 1200711)
stimmt der Quellcode denn so oder liegts an dem?

Das Problem an deinem Code ist, dass du nur die Dateinamen in die Stringliste abspeicherst; die anderen Daten also Grösse, Attribute und Datum/Uhrzeit gehen verloren.

Es kommt drauf an, was du überhaupt erreichen möchtest.
Auf jeden Fall kann man das Durchsuchen von Verzeichnissen allgemeiner (und eleganter) programmieren.
Zum Beispiel hier:
http://www.delphipraxis.net/1095038-post19.html

Drahcir 26. Jan 2013 16:13

AW: TFileStream.Create gibt Error
 
Das Problem hat sich erledigt, mit TSearchRec.size erledigt sich das von selbst :)

Vielen Dank an alle Helfer :D

// Die Namen in der StringList waren dafür da, diese dann nach und nach abzulaufen und deren Größe zu ermitteln. Aber hat sich erledigt.

Volker Z. 27. Jan 2013 00:23

AW: TFileStream.Create gibt Error
 
Hallo,

vielleicht eine völlig dämliche Frage, aber ich sehe Du liest Deinen eigenen Thread jetzt seit mehreren Stunden immer wieder und immer wieder selbst, obwohl Du den Thread
Zitat:

Das Problem hat sich erledigt, mit TSearchRec.size erledigt sich das von selbst
selbst geschlossen hast.

Gibt es doch noch Fragen?

Gruß

Drahcir 27. Jan 2013 00:35

AW: TFileStream.Create gibt Error
 
Ich lese ihn weil, zugegeben mein Mozilla prüft alle Forenseiten alle Viertelstunde auf Aktualisierungen, und wenn da dann doch noch wer postet das ich antworten kann, auch wenn sich das Problem eigentlich gelöst hat.
Man will ja nicht unfreundlich erscheinen.

Und wenn wer was fragt bezüglich meines Codes wieso ich was mache, dann antworte ich halt. Kann ja sein das ich Fehler mache und man mich drauf hinweisen möchte, auch wenn sich das Problem gelöst hat oder jemand meinen Quellcode im Nachhinein gut findet und entweder an der Entwicklung mitarbeiten oder zumindest den fertigen Quellcode gerne hätte. Hab ich alles schon erlebt ;)

Aktuell Fragen hab ich keine, sonst würden die hier schon stehen ;)

Gegenfrage: Wie siehst du das ich meinen Beitrag lese? *scared*

Volker Z. 27. Jan 2013 00:51

AW: TFileStream.Create gibt Error
 
Hallo,

wollte Dir nicht zu nahe treten.
Zitat:

Ich lese ihn weil, zugegeben mein Mozilla prüft alle Forenseiten alle Viertelstunde auf Aktualisierungen
Konnte ich nicht wissen.
Zitat:

Gegenfrage: Wie siehst du das ich meinen Beitrag lese? *scared*
*scared* No worry! "Wer ist online" sagt mir wer was gerade liest;

Gruß

Drahcir 27. Jan 2013 01:00

AW: TFileStream.Create gibt Error
 
Macht nix, ist aber interessant zu sehen dass es auffällt ;)
Das hab ich bisher nicht gehabt, aber gut zu wissen.

Ja mein Mozilla prüft stündlich bis zu 400 Foreneinträge, die ich nicht alle manuell prüfen mag (Viel-Blogger, ja ich weiß das ist übertrieben und einige sind schon seit knapp nem Jahr nicht mehr beantwortet worden ...) ;)

Natürlich kannst du das nicht wissen :D Kam auch nicht aufdringlich rüber :)

Naja das mit dem Wer-ist-Online ... da hätte ich auch drauf kommen können :thumb:

Ausserdem trifft man so eher auf nette Leute zum Plaudern :P

Jetzt hab ich aber trotzdem noch ne Frage die aber glaub ich off-topic ist, reinwerfen tu ich die trotzdem mal ... ich komme mit canvas.pie nicht klar, wie erreichnet der/die/das pie den mittelpunkt, von dem aus gezeichnet wird? mitte zwischen X1 und X2 und Mitte zwischen Y1 und Y2?

Ich wünsch hier mal ne gute Nacht, ich gönne mir jetzt meinen seligen Schönheitsschlaf :wink:

Volker Z. 27. Jan 2013 01:37

AW: TFileStream.Create gibt Error
 
Hallo,

Zitat:

Kam auch nicht aufdringlich rüber
Puh(!), bin ich froh - war auch nicht meine Intension
Zitat:

Ausserdem trifft man so eher auf nette Leute zum Plaudern
Try and error auch eine Variante :) (nix für ungut - glaube selbst nett zu sein und plauern ist i.R. eine feine Sache)
Zitat:

Jetzt hab ich aber trotzdem noch ne Frage die aber glaub ich off-topic ist, reinwerfen tu ich die trotzdem mal ... ich komme mit canvas.pie nicht klar, wie erreichnet der/die/das pie den mittelpunkt, von dem aus gezeichnet wird? mitte zwischen X1 und X2 und Mitte zwischen Y1 und Y2?
Sicher OT. Aber versuchs mal:
Delphi-Quellcode:
procedure TForm4.Button3Click(Sender: TObject);
var
  r : TRect;
begin
  r := Rect (0, 0, 200, 300);
  Canvas.Rectangle(r);
  Canvas.Pie (r.Left, r.top, r.Right, r.Bottom, r.Left, r.Right div 2, r.top, r.Bottom div 2);
end;
zeichnet schön ein Tortenstück auf das Canvas. div 2 ist meistens ein guter Kandidat die Mitte zu treffen.

Zitat:

Ich wünsch hier mal ne gute Nacht, ich gönne mir jetzt meinen seligen Schönheitsschlaf
Verdient ist verdient - neh! Ich versuche es dann auch mit schlafen - ob es dann auch schön macht(?)

Gruß

Christian Seehase 27. Jan 2013 09:13

AW: TFileStream.Create gibt Error
 
Moin Zusammen,

das fmShareDenyNone hilft Dir nichts, wenn ein anderer Prozess die Datei exklusiv geöffnet hat.
Die Verwendung von TSearchRec.Size funktioniert auch nur bedingt, da es auf 32-Bit begrenzt ist.
Besser:

Delphi-Quellcode:
  iFileSize := (sr.FindData.nFileSizeHigh shl 32) or (sr.FindData.nFileSizeLow);

DeddyH 27. Jan 2013 09:57

AW: TFileStream.Create gibt Error
 
Ich will ja keine Werbung machen, aber mit meiner Komponente wäre das ganz einfach zu lösen gewesen ;)

Sir Rufo 27. Jan 2013 10:02

AW: TFileStream.Create gibt Error
 
Zitat:

Zitat von Christian Seehase (Beitrag 1200807)
das fmShareDenyNone hilft Dir nichts, wenn ein anderer Prozess die Datei exklusiv geöffnet hat.

+ wenn man keine Berechtigung zum Lesen der Datei hat, dann geht das auch nicht ;)

Drahcir 27. Jan 2013 12:32

AW: TFileStream.Create gibt Error
 
Und da bin ich mit Programm V2, mal sehen wo ihr noch überall Fehler findet :P

Zitat:

Zitat von Christian Seehase (Beitrag 1200807)
Moin Zusammen,

das fmShareDenyNone hilft Dir nichts, wenn ein anderer Prozess die Datei exklusiv geöffnet hat.
Die Verwendung von TSearchRec.Size funktioniert auch nur bedingt, da es auf 32-Bit begrenzt ist.
Besser:

Delphi-Quellcode:
  iFileSize := (sr.FindData.nFileSizeHigh shl 32) or (sr.FindData.nFileSizeLow);

Dann werd ich mir da was überlegen müssen :o

Zitat:

Zitat von DeddyH (Beitrag 1200819)
Ich will ja keine Werbung machen, aber mit meiner Komponente wäre das ganz einfach zu lösen gewesen ;)

Schau ich mir gerne nachher an wenn ich Zeit habe :D

Zitat:

Zitat von Sir Rufo (Beitrag 1200823)
Zitat:

Zitat von Christian Seehase (Beitrag 1200807)
das fmShareDenyNone hilft Dir nichts, wenn ein anderer Prozess die Datei exklusiv geöffnet hat.

+ wenn man keine Berechtigung zum Lesen der Datei hat, dann geht das auch nicht ;)

Hm ok, ich glaube dann stört mich das exklusiv :D und würde mich wundern wenn ich Berechtigungen auf eine MSDOS.SYS kriegen würde, wo wäre denn da dann die Sicherheit? :D

Naja hab n bissl umgesattelt mit den vorhergehenden Beiträgen und meine Funktion, die auch (fast :P) funktioniert, sieht so aus:

Delphi-Quellcode:
function TfrmMain.getDirectoryGroesse(OrdnerPfad:string) : Int64;
var Rec : TSearchRec; Groesse : Int64;
begin
  Groesse := 0;
  result := 0;
  if SysUtils.FindFirst(OrdnerPfad + '*', faAnyFile, Rec) = 0 then
  try
    repeat
      if (Rec.Name <> '.') and (Rec.Name <> '..')
      then begin
        if DirectoryExists(OrdnerPfad + Rec.Name)
        then begin
          Groesse := Groesse + getDirectoryGroesse(Ordnerpfad + Rec.Name + '\');
          g_pLogFile.Warning('Öffne Ordner ' + Ordnerpfad + Rec.Name + '\');
        end;
        if FileExists(OrdnerPfad + Rec.Name)
        then begin
          Groesse := Groesse + Rec.Size;
          g_pLogFile.Information('Datei ' + Ordnerpfad + Rec.Name + ' : ' + FormatFloat(' #,###.', Rec.Size));
        end;
      end;
    until SysUtils.FindNext(Rec) <> 0;
  finally
    g_pLogFile.Warning('Ordnergröße ' + Ordnerpfad + Rec.Name + ' : ' + FormatFloat(' #,###.', Groesse));
    SysUtils.FindClose(Rec);
  end;
 
  result := Groesse;
end;
Naja aber da scheint der irgendwie auch Dateien zu ignorieren, wenn ich einen Ordner (Bsp: 'C:\Users\Drahcir\' durchsuchen lasse, fehlen knapp 40GB, keine Ahnung wo die verschwinden :D naja ich arbeite noch dran ... Kanns sein dasses die Ordner mit den Namen '.' oder '..' sind, die ich ja bei allem geflissentlich übergehe, was sind die eigentlich? (ich glaub ich bin wieder Off-Topic aber gehört ja zu dem Programm)

Vielen Dank nochmal für die schnellen und tollen Antworten :)

DeddyH 27. Jan 2013 15:03

AW: TFileStream.Create gibt Error
 
Liste der Anhänge anzeigen (Anzahl: 1)
Kannst Du mal ausprobieren, ob das Programm im Anhang die richtige Größe ermittelt?

Drahcir 27. Jan 2013 15:11

AW: TFileStream.Create gibt Error
 
Tut es, jetzt bin ich deprimiert :? Gibt exakt die richtige Bytezahl an ...

DeddyH 27. Jan 2013 15:17

AW: TFileStream.Create gibt Error
 
Das arbeitet mit meiner Komponente, der Main-Quelltext hat gerade einmal 80 Zeilen. Vielleicht solltest Du die Dir tatsächlich einmal genauer anschauen. Mich persönlich interessiert vor allem, ob sie sich unter älteren Delphi-Versionen (< Delphi 7) installieren lässt ;)

Drahcir 27. Jan 2013 15:53

AW: TFileStream.Create gibt Error
 
Zitat:

Zitat von DeddyH (Beitrag 1200867)
Das arbeitet mit meiner Komponente, der Main-Quelltext hat gerade einmal 80 Zeilen. Vielleicht solltest Du die Dir tatsächlich einmal genauer anschauen. Mich persönlich interessiert vor allem, ob sie sich unter älteren Delphi-Versionen (< Delphi 7) installieren lässt ;)

Gerne schau ich sie mir an, du hast nichts dagegen das ich den nicht-kommerziell nutze (sofern er mit D6 läuft)?
Natürlich mit Namenserwähnung wenns sein muss :D

DeddyH 27. Jan 2013 15:58

AW: TFileStream.Create gibt Error
 
Du kannst damit machen, was Du willst, steht auch so in der Lizenz ;)

Drahcir 27. Jan 2013 16:01

AW: TFileStream.Create gibt Error
 
Zitat:

Zitat von DeddyH (Beitrag 1200872)
Du kannst damit machen, was Du willst, steht auch so in der Lizenz ;)

Top :thumb:

Ich binde deine Komponente nachher oder morgen ein, je nachdem, wie ich Zeit habe, und meld mich dann anschliessend wieder hier :)

DeddyH 27. Jan 2013 16:12

AW: TFileStream.Create gibt Error
 
Prima. Ich weiß mittlerweile, dass sich die Komponente in der Form nicht unter Delphi 5 installieren lässt. Falls das unter Delphi 6 genauso sein sollte: da kann man noch dran drehen, einfach Bescheid geben.

Drahcir 27. Jan 2013 19:46

AW: TFileStream.Create gibt Error
 
Zitat:

Zitat von DeddyH (Beitrag 1200875)
Prima. Ich weiß mittlerweile, dass sich die Komponente in der Form nicht unter Delphi 5 installieren lässt. Falls das unter Delphi 6 genauso sein sollte: da kann man noch dran drehen, einfach Bescheid geben.

Hm reicht als "nicht-installiert-grund" auch, dass ich da überhaupt nicht durchblicke?
Hab das grade überflogen uns muss sagen, auf Anhieb versteh ich da ... fast nichts.
Auch nicht wie man die einbindet :D

Naja ich beschäftige mich dann wenn ich viel Zeit und viel Lust hab mal damit ... :|

Trotzdem bezweifel ich, dass mir das so auf Anhieb hilft xD

DeddyH 28. Jan 2013 06:53

AW: TFileStream.Create gibt Error
 
Eigentlich war ich bislang der Meinung, ich hätte sie ausführlich dokumentiert, inkl. der enthaltenen Demos :pale:

Drahcir 29. Jan 2013 14:55

AW: TFileStream.Create gibt Error
 
Also hab mich mal hingesetzt ... so kompliziert scheints wirklich nicht zu sein, aber es funktioniert nicht.

Wenn ich die Demos als .dpr-Dateien öffne in Delphi bekomme ich eine Meldung

bei MultiSearchDemo:
"Fehler beim Lesen des Formulars
Klasse TFileSearcher nicht gefunden. Fehler ignosrieren [...]"

MiniExplorer:
Fehler beim Lesen von tvFolders.Iems.NodeData: Eigenschaft NodeData exisitert nicht. Fehler ignorieren und [...]"

Und nach klicken auf Ignorieren siehe MultiSearchDemo das selbe Ergebnis.

bei ListViewDemo:
Siehe MultiSearchDemo.

Auch nachdem ich die entsprechenden Dateien aus Source (alle 4, da ich nicht weiß ob die gebraucht werden) ins Programmverzeichnis kopiert habe, treten die Fehler auf.

In sofern bezweifel ich, dass ich die so problemlos einbinden kann.

Wenn ich noch was für dich testen soll oder du fragen hast meld dich hier ... auch wenns off-topic ist *grins* :roll:


//Edit: Wenn ich überall auf ignorieren drücke und dann das Programm in Delphi starte, gibt er mir ne Fehlermeldung dass er masks.dcu nicht kennt und der "braune Balken" der die Fehlermeldung angibt liegt in der Uses-Klausel.

DeddyH 29. Jan 2013 14:57

AW: TFileStream.Create gibt Error
 
Die Demos funktionieren nur dann, wenn die Komponente auch installiert wurde, also in der Komponentenpalette zur Verfügung steht.

generic 29. Jan 2013 15:40

AW: TFileStream.Create gibt Error
 
Zitat:

Zitat von Drahcir (Beitrag 1200835)

Zitat:

Zitat von Sir Rufo (Beitrag 1200823)
Zitat:

Zitat von Christian Seehase (Beitrag 1200807)
das fmShareDenyNone hilft Dir nichts, wenn ein anderer Prozess die Datei exklusiv geöffnet hat.

+ wenn man keine Berechtigung zum Lesen der Datei hat, dann geht das auch nicht ;)

Hm ok, ich glaube dann stört mich das exklusiv :D und würde mich wundern wenn ich Berechtigungen auf eine MSDOS.SYS kriegen würde, wo wäre denn da dann die Sicherheit? :D

Lese-Berechtigung kein Problem, steht ja nichts vertrauliches drin.
In der Hibfil stehen von alles Benutzer und allen Prozessen Informationen drin.
Das ist schon etwas mehr vertraulich, daher KEINE Lese-Berechtigung.

DeddyH 29. Jan 2013 17:31

AW: TFileStream.Create gibt Error
 
Zur Unit masks habe ich diesen Thread gefunden. Was hältst Du davon, wenn wir das solange gemeinsam durchgehen, bis es läuft? Ich könnte dann den Quelltext entsprechend ändern und bei Torry aktualisieren, und Du hättest eine funktionierende Komponente, so hätten wir beide etwas davon :)

Drahcir 29. Jan 2013 19:10

AW: TFileStream.Create gibt Error
 
Zitat:

Zitat von DeddyH (Beitrag 1201197)
Zur Unit masks habe ich diesen Thread gefunden. Was hältst Du davon, wenn wir das solange gemeinsam durchgehen, bis es läuft? Ich könnte dann den Quelltext entsprechend ändern und bei Torry aktualisieren, und Du hättest eine funktionierende Komponente, so hätten wir beide etwas davon :)

Sehr gerne :) Vielleicht könntest du mir bei der Gelegenheit ein wenig den Quelltext erklären? :glaskugel:

Hier im Forum denk ich ist dafür ein unpassender Ort, hast du Skype oder Teamspeak? Kannst mir ja ne PN schicken :)
Sonst wäre ein IRC ja auch eine Möglichkeit, das Internet bietet ja große Auswahl :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz