Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Problem beim Senden mit SendBuf (TFont, TColor) (https://www.delphipraxis.net/114794-problem-beim-senden-mit-sendbuf-tfont-tcolor.html)

rollstuhlfahrer 31. Mai 2008 17:59

Re: Problem beim Senden mit SendBuf (TFont, TColor)
 
HI,

ich würd dir empfehlen, alles in einen Stream zu schreiben und diesen dann zu verschicken. Hierbei treten auch keine Probleme mit zu langen Strings auf, vorrausgesetzt, du hast ein Trennungszeichen (z.B. #) was in den Strings etc. nicht vorkommen darf.

Strings speicherst du am einfachsten mit Stream.Write(Str[1], Length(Str)). Die 1 ist wichtig, da alles in einem Stream in einem Pointer abgelegt wird. Schreibst du den String direkt mit Stream.Write(Str, Length(Str)), wird was ganz komisches geschrieben, aber nicht der String.

Streams werden mit SendStream verschifft.

Bernhard

faeX 31. Mai 2008 18:04

Re: Problem beim Senden mit SendBuf (TFont, TColor)
 
Liste der Anhänge anzeigen (Anzahl: 1)
:?: :?: :?:

Okay, damit bin ich etwas überfordert...
Ich habe einen Chat programmiert, wo alles Super funktioniert hat...

MSSSSM 31. Mai 2008 18:08

Re: Problem beim Senden mit SendBuf (TFont, TColor)
 
http://www.delphipraxis.net/download.php?id=33542


habe auch mal einen kleinen chat gescrieben...


[OT]bist ja nur 2 Jahre älter als ich...[/OT]


klar mit streams gehts imho besser..., aber das sollte man erst einsetzen wenn man es verstanden *g*

mhm

@rollstuhlfahrer
meinst du das man einfach den str in einem stream ablegt und den also z.b. Irgendwas: TStream

macht?


mfg

faeX 31. Mai 2008 18:09

Re: Problem beim Senden mit SendBuf (TFont, TColor)
 
Was sind Pointer, wie programmiert man diesen Stream, wie setzt man Trennungszeichen, wie senden man Streams?

faeX 31. Mai 2008 18:09

Re: Problem beim Senden mit SendBuf (TFont, TColor)
 
Mir fällt grade auf, dass die meisten kaum älter, gar jünger sind als ich...

faeX 31. Mai 2008 18:11

Re: Problem beim Senden mit SendBuf (TFont, TColor)
 
Bei deinem Chat schlägt mein Scanner Alarm, obwohl ich nicht glaube, dass er berechtigt ist...

MSSSSM 31. Mai 2008 18:14

Re: Problem beim Senden mit SendBuf (TFont, TColor)
 
beim server?

ist normal...

mfg

Fussball-Robby 31. Mai 2008 18:14

Re: Problem beim Senden mit SendBuf (TFont, TColor)
 
@faeX: Könntest du bitte in Zukunft deine Beiträge editieren (Edit-Button rechts über deinem Beitag) und nicht mehrere Beiträge unmittelbar nacheinander schreiben? Das nennt man "pushen" und ist hier nicht gern gesehen :wink:

faeX 31. Mai 2008 18:17

Re: Problem beim Senden mit SendBuf (TFont, TColor)
 
@Fussball-Robby: Danke für den Tipp, bin noch nicht lange dabei...

und wie programmiere ich diese Streams nun?

nunja meine Mutter möchte dass ich essen komme, werde mir eure antworten später durchlesen

rollstuhlfahrer 31. Mai 2008 19:33

Re: Problem beim Senden mit SendBuf (TFont, TColor)
 
Streams gehen ganz einfach. In der Unit Classes sind Delphi-Referenz durchsuchenTStream, Delphi-Referenz durchsuchenTMemoryStream, Delphi-Referenz durchsuchenTFileStream und Delphi-Referenz durchsuchenTStringStream. Für die Verwendung guck bitte in die Delphi-Hilfe (Stichwort: Stream(s)).

Streams gehen so:
Delphi-Quellcode:
var Stream: TMemoryStream // mein Liebling unter den Streams
begin
Stream := TMemoryStream.Create; // Erstellen
Stream.Write(Edit1.Text[1], Length(Edit1.Text)); // Reinschreiben
Stream.Position := 0; // Auf den Anfang setzen
Form1.Client.Socket.SendStream(Stream); // Verschicken
// Ein .Free ist hier nicht notwendig, da das die Prozedur SendStream übernimmt
end;
Pointer sind Zeiger auf bestimmte Speichertypen. Übergibst du einer Funktion/Prozedur ein Objekt, so wird nur der Zeiger übergeben (nicht da Objekt seblst). Greifst du dann darauf zu, änderst du in allen Variablen dieses Objektes, das du übergeben hast, die Eigenschaft. (Hier ist jetzt aber nicht gemeint, dass man von jeder Klasse nur 1 Instanz erzeugen kann. Es wird eben das von der aktuellen Instanz geändert.)
Zitat:

Zitat von faeX
Mist, schon wieder ein Fehler... Der String ist auf 255 Zeiten begrenzt.

Delphi-Quellcode:
TagString : String[255];

Für längere Strings verwende WideString

Zitat:

Zitat von faeX
Bei deinem Chat schlägt mein Scanner Alarm, obwohl ich nicht glaube, dass er berechtigt ist...

Zitat:

Zitat von MSSSSM
beim server?

ist normal...

mfg

Seh ich anders. Ein Programm sollte ganz ohne Virenwarnung laufen (und erst recht dann, wenn es selbstgeschrieben ist).
Prüfe mal deine EXE z.b. bei Virustotal und kontaktiere mal den Virenscanner-Hersteller, was der dazu sagt. Bei mir traten auch mal Viren auf, wenn ich direkt auf WinSockets zugegriffen hatte.

Bernhard


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:08 Uhr.
Seite 2 von 3     12 3      

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