home *** CD-ROM | disk | FTP | other *** search
/ ring.yamanashi.ac.jp/pub/pc/freem/action/ / action.zip / baku100.zip / baku100 / Kernel / Util / DataWriter.tonyu < prev    next >
Text File  |  2002-11-28  |  990b  |  64 lines

  1. extends Object;
  2.  
  3. constructor DataWriter(rr) {
  4.   r=rr;
  5. }
  6.  
  7. function write(d) {
  8.   return r.write(d);
  9. }
  10.  
  11. function writeInt(d) {
  12.   var m;
  13.   if (d>=0) {
  14.    d=trunc(d);
  15.    m=d % 256;  
  16.    r.write(m);
  17.    d=trunc((d-m)/256);
  18.    m=d % 256;  
  19.    r.write(m);
  20.    d=trunc((d-m)/256);
  21.    m=d % 256;  
  22.    r.write(m);
  23.    d=trunc((d-m)/256);
  24.    m=d % 256;  
  25.    r.write(m);
  26.    d=trunc((d-m)/256);
  27.   } else {
  28.    d=2147483647+1+trunc(d);
  29.    m=d % 256;  
  30.    r.write(m);
  31.    d=trunc((d-m)/256);
  32.    m=d % 256;  
  33.    r.write(m);
  34.    d=trunc((d-m)/256);
  35.    m=d % 256;  
  36.    r.write(m);
  37.    d=trunc((d-m)/256);
  38.    m=d % 256 + 128;  
  39.    r.write(m);
  40.    d=trunc((d-m)/256);
  41.   }
  42. }
  43.  
  44. function writeString(s) {
  45.   var e,i,l;
  46.   if (!(s is String)) return;
  47.   l=s.byteLength();
  48.   writeInt(l);
  49. //  if (l==7) print (s+"/len="+l);
  50.   i=0; 
  51.   while (i<l) {
  52.    e=s.byteAt(i);
  53.    write(e);
  54.    i+=1;
  55.   }
  56. }
  57.  
  58. function eof() {
  59.   return r.eof();
  60. }
  61.  
  62. function close() {
  63.   r.close();
  64. }