RaveReport i StreamToString - problem z polskimi znakami

0

Problem polega na przekazaniu stringa z polskimi znakami do raportu rave.

Korzystam z funkcji:

function StreamToString(aStream: TStream): string;
var
  SS: TStringStream;
begin
  if aStream <> nil then
  begin
    SS := TStringStream.Create('');

    try
      SS.CopyFrom(aStream, 0);
      // No need to position at 0 nor provide size

      Result := SS.DataString;
    finally
      SS.Free;
    end;
  end
  else
  begin
    Result := '';
  end;
end;

Pod buttona mam przypięte:

RvProject1.SetParam('ParamOpis', (StreamToString(ms)));

zmienna ms pochodzi z richedita:

ms := TMemoryStream.Create;
RichEdit2.Lines.SaveToStream(ms) ;
ms.Seek(0, soFromBeginning) ;
RichEdit3.Lines.LoadFromStream(ms);

Zalezy mi na tym żeby przekazywać dane z richedita do rave z formatowaniem tekstu i to się dzieje bo w raporcie formatowanie pozostaje ale nie ma polskich znaków. Czy ktoś może pomóc bo walczę z tym już dość długo.

Próbowałem w tej funkcji przed Result := SS.DataString; wstawić SS.Encoding.GetEncoding(1250); ale nie pomaga.

Może ktoś podsunąć jakiś pomysł.

Delphi XE2.

0

ok, kod mam taki:

function StreamToString(aStream: TStream): string;
var
  SS: TStringStream;
begin
  if aStream <> nil then
  begin
    SS := TStringStream.Create('');

    try
      SS.CopyFrom(aStream, 0);
      // No need to position at 0 nor provide size
      SS.Encoding.GetEncoding(1250);
      Result := SS.DataString;
    finally
      SS.Free;
    end;
  end
  else
  begin
    Result := '';
  end;
end;

Do @kwq84i2 - po prostu nie mogłem edytować wątku na koncie gościa dlatego go skopiowałem zanim szanowny kolega go poprawił.

Odnośnie tego GetEncoding to faktycznie zagalopowałem się ... za długo już nad tym siedzę.
Ale wracając do tematu, po części rozwiązałem problem. Zamiast użycia funkcji StreamToString użyłem

RichEdit2.Lines.SaveToStream(StrStream);

Natomiast przekazywanie z parametrem rozwiązałem tak:

 RvProject1.SetParam('ParamOpis',StrStream.DataString);

Polskie znaki działają ale bez formatowania, czy jest jakiś sposób żeby przekazać te dane z formatowaniem ?

0

Do @kwq84i2 - po prostu nie mogłem edytować wątku na koncie gościa dlatego go skopiowałem zanim szanowny kolega go poprawił.

I zapostowałeś raz jeszcze bez znaczników, czyż nie.

Polskie znaki działają ale bez formatowania, czy jest jakiś sposób żeby przekazać te dane z formatowaniem ?

Śmiem zgadywać że jeżeli znowu poczekamy parę godzin to magicznym sposobem problem który masz od lat, rozwiąże się. Wobec tego nie będę marnować swojego czasu na używanie googli za ciebie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1