| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | at skrive en string til en fil Fra : Stephan Henningsen | 
  Dato :  08-10-01 13:09 |  
  |   
            
 
 Jeg vil gerne have at vide, hvordan jeg gemmer en string til
 en fil.  Jeg skal skrive nogle smaa, fast definerede
 kommandoer ud til min serielport, og derefter straks
 indlaese svaret fra den enhed, der sidder derude og maelder
 tilbage.
 
 Dette vil jeg goere ved foerst at sende strengen og derefter
 indlaese fra samme fil i en ny streng, som jeg saa vil gemme
 til en fil.  Enheden snakker kun ved 300bps, saa jeg ved
 ikke, om det kan give problemer med .read() og .write()?
 
 Under alle omstaendigheder, virker nedenstaaende ikke.  Det
 er skrevet ud fra bedre erindring om, hvordan man arbejder
 med c++-strenge og -filer (det er laenge siden..).
 
 Jeg vil ogsaa gerne have lidt tip til, om min
 exception-handling ser fornuftig ud.
 
 
 Haaber nogen gider tage sig to minutter til det =)
 
 
 
 
 
 #include "../config.h"
 
 #include <iostream>
 #include <fstream>
 #include <string>
 #include <stdexcept>
 
 using namespace std;
 
 
 
 #define CRLF    "\x0D\x0A"
 
 
 
 int
 main ( int argc, char** argv )
 {
         fstream         device;
         int             i;
         string          buf;
 
 
         // Set exception mask.
         device.exceptions ( ifstream::eofbit | ifstream::failbit |
                                 ifstream::badbit );
 
 
 
         try {
                 device.open ( DEVICE, ios::bin | ios::nocreate );
                 cout << "Device opened: " << DEVICE << endl;
         }
         catch ( const exception& e ) {
                 cerr << "Exception opening device " << DEVICE
                         << ": " << e.what() << endl;
         }
 
 
         buf = "/?!" + CRLF;
         cout << "buf is [" << buf << "]" << endl;
         device.write( buf.c_str(), buf.length() );
 
         device.close();
         cout << "Device closed: " << DEVICE << endl;
 
 
         return 0;
 }
 
 
 
 
 -- 
 Stephan Henningsen  /
                    /  tisprut productions[tm]
 
  
            
             |   |   
            
        
 
            
         
           Stephan Henningsen (08-10-2001) 
         
	
            | Kommentar Fra : Stephan Henningsen | 
  Dato :  08-10-01 13:14 |  
  |   
            On 08 Oct 2001 12:08:33 GMT, Stephan Henningsen wrote:
 >        buf = "/?!" + CRLF;
 
          buf = string("/?!") + string(CRLF);
 
 Men jeg troede at den godt kunne tage imod statiske
 char-arrays.
 
 
 -- 
 Stephan Henningsen  /
                    /  tisprut productions[tm]
 
  
            
             |   |   
            
        
 
            
         
           Kim Nielsen (08-10-2001) 
         
	
            | Kommentar Fra : Kim Nielsen | 
  Dato :  08-10-01 13:40 |  
  |   
            Stephan Henningsen wrote:
 > 
 > On 08 Oct 2001 12:08:33 GMT, Stephan Henningsen wrote:
 > >        buf = "/?!" + CRLF;
 > 
 >          buf = string("/?!") + string(CRLF);
 > 
 
 Tja måske kunne du:
 
 fwrite(buf.c_str(), buf.size(), 0, fp);
 
 /Kim
  
            
             |   |   
            
        
 
            
         
            Stephan Henningsen (08-10-2001) 
         
	
            | Kommentar Fra : Stephan Henningsen | 
  Dato :  08-10-01 17:20 |  
  |   
            On Mon, 08 Oct 2001 14:40:00 +0200, Kim Nielsen wrote:
 
 >Tja måske kunne du:
 >
 >fwrite(buf.c_str(), buf.size(), 0, fp);
 
 fwrite kaster vist ikke så vildt mange c++-exceptions =)
 
 
 -- 
 Stephan Henningsen  /
                    /  tisprut productions[tm]
 
  
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |