From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id EAA29296; Fri, 13 Sep 2002 04:36:04 +0200 (MET DST) Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id EAA29727 for ; Fri, 13 Sep 2002 04:36:04 +0200 (MET DST) Received: from lithinos.com ([192.41.68.34]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id g8D2a2109739 for ; Fri, 13 Sep 2002 04:36:02 +0200 (MET DST) Received: from stone (42dbc309.dsl.aros.net [66.219.195.9]) by lithinos.com (8.12.5/8.11.0) with SMTP id g8D2YJQZ007198 for ; Thu, 12 Sep 2002 20:34:19 -0600 X-Authentication-Warning: lithinos.com: lought owned process doing -bs Message-ID: <000401c25ace$6896c7b0$0a00a8c0@stone> From: "Richard Lyman" To: References: <4D5CA086.356E9A2F.00958B05@netscape.net> Subject: Re: [Caml-list] Setting the EOL character.... Date: Thu, 12 Sep 2002 20:36:45 -0600 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4807.1700 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Ok... That doesn't look too bad - and I think I almost understand it. : ) ... so then - there's no OCaml concept of a global EOL variable, or method that deals with reading in from a stream until the EOL?? I was hoping more for something along the lines of - (start pseudocode) myStream = Unix.accepted_socket_stream while(true){ a_line = myStream.read_until("\000") deal_with_line(a_line) } (end pseudocode) Thanks for your thoughts! -Rich ----- Original Message ----- From: "Arturo Borquez" To: ""Richard Lyman"" Cc: Sent: Thursday, September 12, 2002 8:24 PM Subject: RE: [Caml-list] Setting the EOL character.... > "Richard Lyman" wrote: > > >To start - I really don't know that much about programming (3 years self-taught in scripted web languages - Perl/PHP/Ruby), and I'm trying to learn OCaml... > > > >I've mostly dealt with persistent socket servers in other programming languages, and I'd like to write one in OCaml. > > > >I've read most of the book - Developing Applications with Objective Caml (English PDF), so I understand a little - but I'm still very unsure of myself. > > > >Here's the problem I'm trying to solve... > > > >I have a proprietary format I'm trying to read in through a socket - when I say proprietary I mean that the EOL character is the ASCII null character (\000) and not the '\n' character. > > > >I've looked at the examples in the OReilly book, but I'm not sure how to change the default End Of Line character (\n) to \000. > > > >Will I have to do some sort of pattern match on the stream so that I can deal with 'each line' using \000 as the EOL character? > > > >Do the input, input_line, read, or read_line methods accept a different EOL character as a parameter - or can I define the method differently? > > > >Since I can read in a certain amount of characters with methods like read, can I find the location of the ASCII null character and read from the stream until right after it? > > > >I hope I've asked good enough questions... > > > >Thanks for any help you guys can give! > > > >Let me know if anything's not clear enough... > > > >-Rich > > > > Hi, > > you could try something like this > > let read_eol inchan = > let rec f buf = > let c = input_char inchan in > if c = '\000' then Buffer.contents buf > else begin Buffer.add_char buf c; f buf end > in f (Buffer.create 64);; > > or in 'revised syntax which I prefer) > > value read_eol inchan = > f (Buffer.create 64) where rec f buf = > let c = input_char inchan in > if c = '\000' then Buffer.contents buf > else do { Buffer.add_char buf c; f buf } > ; > > (Note there is no exception handling in examples) > Regards > -- > Arturo Borquez > > > __________________________________________________________________ > The NEW Netscape 7.0 browser is now available. Upgrade now! http://channels.netscape.com/ns/browsers/download.jsp > > Get your own FREE, personal Netscape Mail account today at http://webmail.netscape.com/ > ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners