Autor |
Beitrag |
ObscurusNox
Beiträge: 49
|
Verfasst: So 04.08.02 13:12
Du sitzt an einem Netzwerk, vielleicht in einer großen Firma, und dein Kumpel sitzt in einem anderen Gebäude. Was tun ???
Ich hatte dieses Problem schon einmal und hab daher folgendes Programm geschrieben. Die meisten Firmen-Netzwerke haben allgemein zugängliche Laufwerke, auf denen sogar Guests Schreibrechte haben und ein solches Laufwerk hab ich mir zu nutzen gemacht.
Das praktische ist, dass man die in riesigen Netzwerken ja multible IP-Adresse nicht benötigt. Man muss nur ein Verzeichnis angeben, in dem die Protokoll-Datei gespeichert wird.
Außerdem hat man nicht die Probleme mit der Definition von Servern und Clients, der Chat ist für so ziemlich beliebig viele User zugänglich. Das Programm wir noch nicht perfekt sein, aber ich habe es selbst drei Wochen lange bei Bo***-Bl*******-Hildesheim während meines Praktikums getestet und soweit funktioniert's eigentlich.
(Fehler bitte melden )
DOWNLOADEN MIT "ZIEL SPEICHERN UNTER"
Programme downloaden: Pseudo-Chat.zip (279.261 Bytes)
Source downloaden: Source.zip (56.686 Bytes)
Viel Spaß damit !!!
(21.09.02 00:09 Tino) Screenshot entfernt. Datei war nicht mehr vorhanden.
Zuletzt bearbeitet von ObscurusNox am So 11.04.04 12:08, insgesamt 3-mal bearbeitet
|
|
Arakis
Beiträge: 344
|
Verfasst: Mi 14.08.02 10:45
Ist schon etwas besonderes, wenn im Internet eine Datei länger als 10 Tage überlebt
Was ich damit sagen will ist einfach, dass beide Dateien plus Grafik nicht mehr das sind
Bis dann
_________________ Mit dem Computer löst man Probleme, die man ohne ihn nicht hätte.
Entwickler von SpaceTrek: The New Empire - Siehe Hompage!
|
|
bis11
Beiträge: 1247
Erhaltene Danke: 2
Apple Mac OSX 10.11
|
Verfasst: Mi 14.08.02 11:10
Hi Arakis,
probiere es mal mit Ziel speichern unter, dann funktioniert es.
|
|
Arakis
Beiträge: 344
|
Verfasst: Mi 14.08.02 11:21
Na so was, geht ja doch
Trotzdem ist mir brinkster da nicht so ganz geheuer, normaler weise kann man ohne weiteres eine Datei anklicken und dann abspeichern(ohne Kontextmenü). Jetzt kommt beim nomalen Anklicken eine Fehlermeldung, vorhin kam aber gar nix.
Bis dann
_________________ Mit dem Computer löst man Probleme, die man ohne ihn nicht hätte.
Entwickler von SpaceTrek: The New Empire - Siehe Hompage!
|
|
Andi1982
Beiträge: 497
WinXP HE
D6 Enterprise
|
Verfasst: Fr 08.11.02 08:29
Titel: Ich finds spitze!
Hallo,
habe dein Prog mal getestet. Vielleicht liegt es ja daran dass ich mit Delphi noch nicht sehr viel Erfahrung habe, aber ich finde es sehr gut!!!
Wenn du erlaubst würde ich gerne eine Frage zum Quellcode stellen, will ja schließlich auch ein wenig lernen.
Aus welchem Grund hast du das hier gemacht:
Quelltext 1: 2: 3: 4: 5: 6:
| procedure TForm1.Button2Click(Sender: TObject); var i : Integer; begin FOR i := 1 TO 100 DO IF Beende THEN Break; end; |
Hätte da nicht einfach die IF-Anweisung gereicht, also ohne die FOR-Schleife? Oder hast du es als Zeitverzögerer oder so verwendet? Ich als Anfänger sehe darin leider keinen sinn.
Gruß Andi
|
|
ObscurusNox
Beiträge: 49
|
Verfasst: Fr 08.11.02 09:41
Hallo!
Natürlich beantworte ich deine Frage gerne.
Problem dabei: Ich habe dieses Programm vor fast einem Jahr geschrieben und weiß natürlich nicht mehr aus dem Kopf, was ich da gemacht habe. War auch noch ein sehr schlechter Stil, vom Quelltext, vonwegen Verständnisfähigkeit.
Wenn ich das gerade richtig gesehen habe, ist
Quelltext 1:
| procedure TForm1.Button2Click(Sender: TObject); |
die Function, die aufgerufen wird, wenn man auf "abmelden" klickt.
Quelltext
"Beende" ist in diesem Fall keine Boolean-Variable, sondern eine Function, die eine Boolean-Wert zugewiesen kriegt. Guck dir die mal genauer an, vielleicht verstehst du was ich gemacht habe.
Wenn ich mich richtig erinnere hatte ich das Problem das auftritt, wenn zwei Programm gleichzeitig in die Datei schreiben. Also wenn ein Programm die Datei öffnet und reinschreibt, wenn der zweite noch beim schreiben ist, dann wird das, was der zweite geschrieben hat, ignoriert bzw. überschrieben.
Das Problem habe ich so gelöst, dass die Datei vor dem reinschreiben umbenannt wird, dadurch kann ein anderer nicht drauf zugreifen, wenn geschrieben wird.
Diese Schleife versucht jetzt 100 mal die Datei zu finden (wenn gerade in sie reingeschrieben wird, kann sie nicht gefunden werden!!!) und wenn es sie gefunden hat, wir hineingeschrieben, dass der Chat vom entsprechenden User verlassen wurde.
Ich hoffe, dass ich deine Frage damit einigermaßen beantworten konnte.
Du kannst mir natürlich gern weitere Fragen zu meinem Programm stellen,
MfG,
Markus.
|
|
Andi1982
Beiträge: 497
WinXP HE
D6 Enterprise
|
Verfasst: Fr 08.11.02 09:46
Achso, ja verstehe!
Darauf wär ich glaub nicht gekommen. Um solche Fehler zu finden muss man aber wirklich gut testen.
Ich glaub du hast es wirklich drauf!
Also vielen Dank für die schnelle Antwort!
Gruss Andi
|
|
eddyp
Beiträge: 58
|
Verfasst: So 01.12.02 22:38
Diese chat - Geschichte ist echt ne gute Idee. Ich hab noch ein paar Zeilen dazugebastelt und nehme das ganze auch zum fernsteuern im Netz
so kan ich alle Computer im Netz wenn keiner mehr was macht abschalten oder die von allen natürlich nicht nicht gemachten Backups prüfen und automatisch nachholen. Hat mir sehr geholfen.
Nur in Button1Click nach dem Rewrite( Datei ) musste ich ein reset(datei) einfügen, sonst wurde die ganze Sache an manchen (nicht allen PC)extrem langsam (keine Ahnung warum!? (D6E, XPP))
_________________ Grüsse, eddyp
|
|
ObscurusNox
Beiträge: 49
|
Verfasst: Mo 02.12.02 07:50
Hm... also wenn ich das richtig verstanden haben:
In
Quelltext 1:
| procedure TForm1.Button1Click(Sender: TObject); |
läuft
Quelltext 1: 2: 3: 4: 5: 6:
| Rewrite( Datei ); Reset( Datei ); Write( Datei, DsxDatei ); CloseFile( Datei ); Memo2.Clear; ... |
schneller, als ohne das Rewrite( Datei ) ohne Reset ????
Das verstehe ich nun wirklich nicht.
Ich weiß, das ganze Ding ist kaum optimiert, aber warum XP damit ein Problem haben sollte weiß ich nicht.
Habe persönlich auch kein XP, mehr so ME.
Vielleicht kann's ja aber ein anderer User beantworten...!?!
MfG,
Markus.
|
|
ObscurusNox
Beiträge: 49
|
Verfasst: Mo 02.12.02 20:32
@eddyp:
Vielleicht könntest du auch einfach mal deine Quellcode hier posten (wenn du willst). Könnte unter Umständen auch für andere User interessant sein.
Nur 'n Vorschlag.
MfG,
Markus.
|
|
eddyp
Beiträge: 58
|
Verfasst: Mo 02.12.02 22:09
Ich habe nach 1,5 Jahren Telekom- Ignoranz jetzt DSL bekommen, das Haus verkabelt und wenn alles so läuft wie ich mal denke, kann mann dann downloaden.
@ObscurusNox
Aber emailen kann ich dir die geänderte Version gerne.
Mit dem Reset, das war nur Zufall, da das Prg. im Debugger normal lief und "live" genau dort bremste (aber nicht auf jedem PC), da versuchte ich es mit Reset.
_________________ Grüsse, eddyp
|
|
Andi1982
Beiträge: 497
WinXP HE
D6 Enterprise
|
Verfasst: Do 09.01.03 09:41
Hallo,
hab inzwischen auch einiges am Chat geändert. Als erstes hab ich ihn aber umbenannt, die meisten Chefs sehen es nicht gerne wenn in der Taskleiste was mit "Chat" steht. Die bei uns angewendete Version nennt sich jetzt NT-Connect.
Außerdem hat jetzt jeder benutzer seine eigene Farbe und eine Art protokoll wird geführt. Dies ist aber nur für den Admin zugänglich.
Da bei uns sehr viele Scherzkekse arbeiten habe ich auch eingebaut dass man sich nur mit dem Namen einloggen kann mit dem man in Windows angemeldet ist. Als Admin hab ich mir aber ein paar kleine Hintertürchen offen gehalten.
Leider sieht der Quelltext jetzt aus wie sau, da er vorher schon sehr unübersichtlich war und ich mir beim einbauen der einzelnen Aktionen nicht wirklich viel Mühe gegeben habe.
Trotzdem passiert es immernoch sehr häufig dass der Chat sich aufhängt, hat gegen dieses Problem jemand ne lösung. Es ist immer der fall wenn 2 gleichzeitig schreiben.
Gruß Andi
_________________ Solange die Bombe tickt ist alles in Ordnung, erst wenn sie damit aufhört wird es problematisch...
|
|
ObscurusNox
Beiträge: 49
|
Verfasst: Do 09.01.03 16:00
Hätte ja nicht gedacht, dass sich wirklich jemand die Mühe macht durch den Quellcode durchzusteigen...ist wirklich ein ganz schönes Chaos.
Meine Vermutung für deine Problem:
Zum reinschreiben wird die Chat-Datei ja umbenannt, damit eben nicht zwei Leute gleichzeitig hineinschreiben können. Wenn jetzt ein anderer schreiben will und die Datei nicht da ist, dann versucht er eine gewisse Zeit die Datei zu finden. Das reinschreiben vom andern dauert normalerweise nicht lange, deswegen ist das kein Problem.
Vielleicht fängst du in der Richtung mal an zu suchen. Ich denke mal, dass sich bei dir das Programm aufhängt, dass als zweites versucht zu schreiben, also erst die Datei nicht finden kann, sucht und sich dann wohl in einer Endlosschleife verfängt, oder so.
Werde mal gucken, ob ich dafür in meinem Quelltext anzeichen finde.
MfG,
Markus.
|
|
Lhid
Beiträge: 831
|
Verfasst: Sa 18.10.03 12:55
Einstellung und mich grundlegend verändert-> alte beiträge gelöscht
Zuletzt bearbeitet von Lhid am Sa 26.09.09 14:54, insgesamt 1-mal bearbeitet
|
|
ObscurusNox
Beiträge: 49
|
Verfasst: Sa 18.10.03 12:58
Rechtsklick und "Ziel speichern unter..."!
Bei mir geht's.
PS: Ansonsten kannste mir auch per PM deine Mail-Adresse schicken und dann kriegste die Files per Mail.
|
|
Andi1982
Beiträge: 497
WinXP HE
D6 Enterprise
|
Verfasst: So 19.10.03 18:19
Hi,
gibt es zu dem Problem, dass er sich immer aufhängt wenn zwei gleichzeitig schreiben, inzwischen eine Lösung oder zumindest der genaue Grund dafür???
_________________ Solange die Bombe tickt ist alles in Ordnung, erst wenn sie damit aufhört wird es problematisch...
|
|
ObscurusNox
Beiträge: 49
|
Verfasst: So 19.10.03 19:09
Hab eigentlich nie versucht das zu beheben.
Aber eigentlich düfte das Problem folgendes sein:
Wenn ein User in die Datei schreibt ist sie ja umbenannt.
Der andere, der gleichzeitig schreiben will sucht die Datei.
Schätze diese Suchfunktion ist irgendeine Repeat-Until-Schleife und das gefällt Windows nicht. Man kann ja auch in Delphi kein Delay wie in Pascal verwenden, weil das bei Multitasking tödlich wäre. Schätze da liegt der Fehler.
Programmiere grad (naja, seit einem Jahr) an einem Netzwerktool, mit IP-Chat usw. Das dürfte etwas ausgereifter sein, als der Pseudo-Chat.
|
|
ObscurusNox
Beiträge: 49
|
Verfasst: So 19.10.03 19:18
Der Spaß ist ja schon etwas länger her.
Folgender Code wird bearbeitet, wenn die Datei nicht vorhanden ist:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| AssignFile( Datei, Dateiname ); i := 0; REPEAT inc( i ); {$I-} Reset( Datei ); {$I+} IF IoResult <> 0 THEN W := Messagedlg( 'Datei nicht gefunden !!! Nochmal versuchen ???', mterror, [mbYes,mbNo], 0 ); UNTIL (IoResult = 0) OR (i = 3) OR (W=mrNo); |
Schätze der hat Probleme mit dem "AssignFile".
Versuchs doch an der Stelle mal mit folgendem (ist jetzt so aus dem Stehgreif und nicht getestet):
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| var Bool : Boolean;
Bool := False; repeat for i := 1 to 3 do begin if FilesExists( Datei ) then begin AssignFile( Datei, Dateiname ); Reset( Datei ); Bool := True; end; end; if not Bool then W := Messagedlg( 'Datei nicht gefunden !!! Nochmal versuchen ???', mterror, [mbYes,mbNo], 0 ); until Bool or (W=mrNo); |
|
|
Solid Snake
Beiträge: 44
Win XP Prof, Suse Linux 9 Prof
D7 Enterprise
|
Verfasst: Mi 06.04.05 19:15
hi
Dieser Thread ist zwar schon sehr alt aber eventuell hat ja jemand an dem Chat weiter gearbeitet oder sich mal intensiver damit beschäftigt!
Ich habe auch das Problem das der Chat hin und wieder abstürtzt!
Habe allerdings noch keine passende lösung dafür gefunden!
Ich hoffe ihr könnt mir da weiterhelfen!
mfg
Solid Snake
_________________ Wenn der Computer mit 0100101001010 Arbeitet ist ok,
aber wenn er mit 110 anfängt mach ich ihn kaputt!
|
|
ObscurusNox
Beiträge: 49
|
Verfasst: Mi 06.04.05 19:23
Wenn ich mir das heute so angucke denke ich eigentlich, dass man das am Besten alles nochmal programmieren sollte
Ich hab mir damals ja nichtmal die Mühe gemacht, Buttons zu benennen...
Außerdem denke ich, dass das verwendete System mit dem Datei-Handling recht unoptimiert und fehlerhaft ist.
|
|
|