vorherige Seite | 1 2 |
Gepostet: |
|||||||||||
kannst du mal die ganze aufgabenstellung geben? ich kann mir das jetzt nich so richtig vorstellen was du machen willst... also wenn es keine Leerzeichen gibt dann liest du das programm den ganzen string ein wenn das leerzeichen am anfang des strings steht dann liest du garnix ein willst du abfangen das es kein leerzeichen gibt? wozu? und gib mir mal das was du an getWord geändert hast... |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Kann es sein, dass du das nicht in Haskell sonder in einer anderen Programmiersprache programmierst? Dein Quelltext-Auszug sieht ja eher C-like aus - und nicht Haskell-like ;-) | |||||||||||
Zum Seitenanfang | Homepage ICQ | ||||||||||
Gepostet: |
|||||||||||
Die Aufgabenstellung lautet einen Server in Haskell zu schreiben und eine Client in Python. http://www.ki.cs.uni-frankfurt.de/lehre/SS2005/Praktische-Informatik/praktikum/ Der Client erzeugt nen Socket (wie der Server auch) und schickt eine Anfrage z.B. “PROPF 3 a&b“ wobei sich die 3 auf die Länge der Formel a&b bezieht. Da in den Regeln des Protokolls nichts drin steht das der Client den Socket einseitig schließt oder am Ende der Anfrage ein \n mit sendet um dem Server zu sagen jetzt ist die Anfrage zu ende muss man Zeichen für Zeichen einlesen und auswerten. Funktioniert im normal fall auch. Wenn man aber “PROPF“ schickt hängt sich das Programm auf. getWord heißt bei mir readHandelUntilWhitespace ich rufe readHandelUntilWhitespace mit dem Handel vom Socket und einer leeren liste [] auf. request <- readHandelUntilWhitespace handle [] Und dann bleibt das Programm einfach stehen. |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
alllllllllsooooo:
Testlauf Type :? for help Main> getWord "das nich" "das" Main> getWord "das" "das" Main> getWord " das" "" Main> getWord "" "" du brauchst getword nicht mit einer leeren liste aufrufen... du hast mir immernoch nicht dein readuntilwhitespace reinkopiert...bei der aufgabe hast du ja noch einiges zu machen ;) ich denke der fehler liegt in deinen quelltext gruß jacke |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Das Problem an der Sache ist das ich nicht mit (x:xs) auf den Handel zugreifen kann. Also übergebe ich den Handel und lese mit hGetChar das erste Zeichen aus. Wenn der Handel aber zu ende ist und kein Leerzeichen gekommen ist dann hängt sich der Server auf. Ich mail dir mal dis Script. |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
so in der art müßte es eigentlich gehen |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Danke erstmal für deine Bemühungen!!! Kann es sein das hGetChar keinen Fehler ausgibt, wenn versucht wird etwas zu lesen wo nichts mehr ist? Hab grade versucht mit try either und catch diverse IoErrors abzufangen aber da tut sich rein gar nix |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
ich hab das normale gerChar benutzt...ja und getChar gibt keinen fehler zurrück...;) du kannst nur selber von hand kucken ob das handel leer is also z.b mit nen if gruß jacke |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Ich hab’s folgendermaßen gelöst readHandel handle command = do char <- hGetChar handle eof <- hIsEOF handle if ( char == ' ' ) then return ( reverse command ) else if ( eof ) then return "ERROR" else readHandel handle ( char:command ) und es schein zu funktionieren. Dumm wenn man versuch eine Exception zu fangen wo gar keine ausgegeben wird na ja aus Fehlern lernt man. Es Läuft mim Pythen Client und per Telnet kann man sich auch einwählen. Ich denke das hat zu reichen. Ehrlichgesagt hab ich auch keinen Bock mehr genug Haskell für heute. Noch mal Tausend Dank für deine Hilfe! |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
na das sieht doch gut aus...ich bin immer wieder überrascht was haskell alles kann...ich hab ja mal ein minesweeper gesehen was komplett in haskell geschrieben war... wenn du noch fragen hast ich helf dir gern weiter falls ich hinkriege ;) hab das letzte mal vor nen jahr haskell in der uni gebraucht gruß jacke |
|||||||||||
Zum Seitenanfang | |||||||||||
vorherige Seite | 1 2 |