| 
	
 | 
 
           
             
               
               
                 
                   | 
                   Тема
                    | 
                     bug в TStream.SaveToFile ? 
 | 
 
 |  
| Автор | 
Maнитy (тайнствен) |  
| Публикувано | 30.10.01 18:30 |  
             |  
           | 
            
           
  Следния примерен код дава странни резултати:
 
 var
    TmpStream : TMemoryStream;
    IntVar : Integer;
    ByteVar : Byte;
    StrVar : String; //в Delphi6 -> AnsiString, null терминиран
 begin
    IntVar := 1000;
    ByteVar := 100;
    StrVar := 'що не става да му!';
    TmpStream := TMemoryStream.Create;
    with TmpStream do
      begin
         Write(IntVar, SizeOf(IntVar));
         Write(ByteVar, SizeOf(ByteVar));
         Write(StrVar, Length(StrVar));
         SaveToFile(Path);
         Free;
      end;
 end;
 
 ... имам чувството, че TStream (TMemoryStream е негов наследник) грешно конвертира стрингове или трябва преди това да конвертирам в Byte тип ръчно, но как.. изключвам възможността знак по знак, бавно и глупаво, би трябвало сам да го прави, а Integer и Byte типовете се записват коректно, освен това в самия stream мисля, че стринга се записва коректно, но след записа става каша в файла почему ?
 Моля спешно помогнете  
 
 ...may the source be with you  <P ID="edit"><FONT class="small"><EM>Редактирано от Maнитy на 30.10.01 18:31.</EM></FONT></P>Редактирано от Maнитy на 30.10.01 18:31. 
           
  
             |   |  
           
             
               
               
                 
                   | 
                   Тема
                    | 
                     Re: bug в TStream.SaveToFile ? 
[re: Maнитy]
 | 
 
 |  
| Автор | 
Shveik (Администратор) |  
| Публикувано | 30.10.01 23:26 |  
             |  
           | 
            
           
  Здрасти Маниту приательо,
 много време мина от както не сме се виждали за нещастие..
 как са жените, пиенето и .... т.н.
 Да минем на въпроса това което искаш да направиш става така:
 Write(Pointer(StrVar)^, Length(StrVar));
 По време на байт експо ще идвам в София как да се свържа с теб .. бих искал да се видим имам доста работи да ти казвам.. пък и да пием по една бира :))) с две жени.
 
 Чао
  Дори и да не можеш - ТРЯБВА.
 Щом трябва значи МОЖЕШ.
           
  
             |   |  
           
             
               
               
                 
                   | 
                   Тема
                    | 
                     Re: bug в TStream.SaveToFile ? 
[re: Shveik]
 | 
 
 |  
| Автор | 
SDR () |  
| Публикувано | 31.10.01 12:14 |  
             |  
           | 
            
           
  az pak obicham da go prawq taka:
 
 sz:=length(str);
 s.write(sz,sizeof(sz));
 s.write(str[1],sz);
 
 a posle si go chetesh:
 
 
 s.read(sz,sizeof(sz));
 setlength(str,sz);
 fillchar (str,sz,0);//towa tuka e shtoto wednaj mi prawishe AV pri podoben sluchaj
 s.read(s[1],sz);
  
           
  
             |   |  
           
             
               
               
                 
                   | 
                   Тема
                    | 
                     Re: bug в TStream.SaveToFile ?
[re: SDR]
 | 
 
 |  
| Автор | 
Maнитy (тайнствен) |  
| Публикувано | 31.10.01 12:38 |  
             |  
           | 
            
           
  Туй добре, но когато имаш 2MB текст и отгоре става меча услуга, но както отгороворих на Швейк в програмисти трика който сработи при мен е с междинно трансформиране в TStringStream и неговия метод, все пак благодаря и на двамата, ако почуствате суша в гърлата си, аз съм насреща с пиво почерпка 
  ...may the source be with you  
           
  
             |   |  
  |   
 
 
 |  
 |   
 |