RaveReport i StreamToString - problem z polskimi znakami

RaveReport i StreamToString - problem z polskimi znakami
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Korzystam z funkcji:

Kopiuj
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:

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

zmienna ms pochodzi z richedita:

Kopiuj
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.

  • Rejestracja: dni
  • Ostatnio: dni
0

ok, kod mam taki:

Kopiuj
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

Kopiuj
RichEdit2.Lines.SaveToStream(StrStream);

Natomiast przekazywanie z parametrem rozwiązałem tak:

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

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

K8
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 17
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.