Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi ReadLn-Funktion (https://www.delphipraxis.net/110849-readln-funktion.html)

Desmulator 25. Mär 2008 20:54


ReadLn-Funktion
 
Hallo Leute, ich bräuchte einfach nur mal einen anstoß, wie ich eine ReadLn funktion umstenz könnte, das verfahren in den Indy-Komponenten verstehe ich nicht, deshalb bitte vllt kann mir das einer erklären.

Ich habe nämlich absolut keine vorstellung wie ich sowas umsetzen könnte.

3_of_8 25. Mär 2008 20:57

Re: ReadLn-Funktion
 
Von wo willst du denn lesen?

Desmulator 25. Mär 2008 20:58

Re: ReadLn-Funktion
 
oh sorry habe ich total vergessen...

also er geht um die winsockets, also aus einem socket

3_of_8 25. Mär 2008 21:03

Re: ReadLn-Funktion
 
Weißt du schon, wie du z.B. ein Byte liest?

Desmulator 25. Mär 2008 21:08

Re: ReadLn-Funktion
 
-.- ja

man ich kann auch schon 5 bytes und 2 integer einlesen ...

Also ich brauche kein code sondern nur einen tipp wie ich es umsetzen kann. So weit habe ich gedacht :

Ich lese immer ein bestimmtes stück ein wenn darin ein umbruch vorkommt, hacke ich dahinter alles ab, ansonsten lese ich noch mehr ein hänge es an und suche wieder nach dem umbruch

3_of_8 25. Mär 2008 21:20

Re: ReadLn-Funktion
 
Naja, ich würde es so machen:

Delphi-Quellcode:
repeat
  b:=ReadByte;
  if b in [10, 13] then
    str:=str+chr(b)
  else
    break;
until (Stream zu Ende);
if b=13 then
begin
  b:=ReadByte;
  if b<>10 then
    (Gehe ein Byte zurück);
end;
Das ganze funktioniert so: Du liest in den String, bis du auf ein Zeilenumbruchszeichen (#10 oder #13) triffst. Dann, am Ende, schaust du noch, ob danach noch ein #10 kommt, wenn davor ein #13 war, weil unter Windows ein Zeilenumbruch immer #13#10 ist, unter Unix aber #10 und unter Mac OS <X #13 ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:52 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