]> source.dussan.org Git - poi.git/commitdiff
Update to string record
authorGlen Stampoultzis <glens@apache.org>
Mon, 5 Aug 2002 12:53:01 +0000 (12:53 +0000)
committerGlen Stampoultzis <glens@apache.org>
Mon, 5 Aug 2002 12:53:01 +0000 (12:53 +0000)
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@352823 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hssf/record/StringRecord.java

index 048675ed8cb36bdde5346739bf73e7b7a1da4162..c551997d726228aba39e50a5a0a20126d4aeaa84 100644 (file)
@@ -54,8 +54,9 @@
 
 package org.apache.poi.hssf.record;
 
-import org.apache.poi.util.LittleEndian;
-import org.apache.poi.util.StringUtil;
+import org.apache.poi.util.*;
+
+import java.io.IOException;
 
 /**
  * Supports the STRING record structure.
@@ -65,10 +66,10 @@ import org.apache.poi.util.StringUtil;
 public class StringRecord
         extends Record
 {
-    public final static short sid = 0x207;
-    private int field_1_string_length;
-    private byte field_2_unicode_flag;
-    private String field_3_string;
+    public final static short   sid = 0x207;
+    private int                 field_1_string_length;
+    private byte                field_2_unicode_flag;
+    private String              field_3_string;
 
 
     public StringRecord()
@@ -123,7 +124,6 @@ public class StringRecord
      * @param size size of data
      * @param offset of the record's data (provided a big array of the file)
      */
-
     protected void fillFields( byte[] data, short size, int offset )
     {
         field_1_string_length           = LittleEndian.getUShort(data, 0 + offset);
@@ -134,7 +134,7 @@ public class StringRecord
         }
         else
         {
-            field_3_string = new String(data, 3 + offset, getStringLength());
+            field_3_string = new String(data, 3 + offset, field_1_string_length);
         }
     }
 
@@ -156,7 +156,6 @@ public class StringRecord
         return 4 + 2 + 1 + getStringByteLength();
     }
 
-
     /**
      * is this uncompressed unicode (16bit)?  Or just 8-bit compressed?
      * @return isUnicode - True for 16bit- false for 8bit
@@ -178,7 +177,7 @@ public class StringRecord
     public int serialize( int offset, byte[] data )
     {
         LittleEndian.putShort(data, 0 + offset, sid);
-        LittleEndian.putShort(data, 2 + offset, ( short ) (2 + getStringByteLength()));
+        LittleEndian.putShort(data, 2 + offset, ( short ) (3 + getStringByteLength()));
         LittleEndian.putUShort(data, 4 + offset, field_1_string_length);
         data[6 + offset] = field_2_unicode_flag;
         if (isUnCompressedUnicode())