Delphi-PRAXiS :: Das Forum für Fragen zu Delphi
Das Experten Forum für Delphi Programmierer
Hilfe für CodeGear Delphi gibts es hier im Forum
Delphi Quelltexte und Source Codes
 
Delphi-PRAXiS :: Foren-ÜbersichtForen-Übersicht Delphi-PRAXiS Modul-ÜbersichtSite-Map Delphi-PRAXiS durchsuchenSuchen Delphi-PRAXiS Code-LibraryCode-Library Jetzt registrieren!Registrieren Login  
   
 
0
 
Fehler in der Bereichsprüfung bei Rave 8.01
Ein Thema von Artur.

Vorheriges Thema anzeigen  |  Nächstes Thema anzeigen
Neuen Beitrag schreiben Auf Beitrag antworten
als PDF-Datei herunterladenThema ausdrucken
 
Delphi-PRAXiS Forum - Übersicht -> Tools rund um Delphi
Seite 1 von 1   [ 4 Beiträge ]  
 
 Autor 
 Nachricht 
 
Artur #1|Beitrag #1128012Verfasst am: 07.02.2010, 16:02      Titel: Fehler in der Bereichsprüfung bei Rave 8.01 Antworten mit Zitat
Mitglied
Alter: 40
Status: offline
Beiträge: 56
angemeldet: 31.12.2006
Wohnort: Augsburg
Delphi 2007 Professional

Hallo,

ich habe ein Problem bei Rave 8.01 in der Unit RvUtils.
Schalte ich die Bereichsprüfung ein, meckert er.

Bei Stream.Read knallt es.

Delphi-Quellcode: zusammenfalten | markieren
{$IFDEF UNICODE}
     if Len = UnicodeMarker then begin
     // Read the unicode version
       CodePage := ReadIndex;
       if CodePage = DefaultUnicodeCodePage then begin
         Encoding := TEncoding.Unicode;
       end else begin
         Encoding := TEncoding.GetEncoding(CodePage);
       end;
       Len := ReadIndex;
       SetLength(Data, Len);
       Stream.Read(Data[0], Len);
       Value := Encoding.GetString(Data);

     // Skip past the ANSI version
       Len := ReadIndex;
       Stream.Seek(Len, soFromCurrent);
     end else begin
       SetLength(S1, Len);
       Read(@S1[1], Len);
       Value := string(S1);
     end;
  {$ELSE}
    SetLength(Value,Len);
    Read(@Value[1],Len);
  {$ENDIF}


Und das selbe Spiel gibt es ein zweites Mal beim Schreiben:

Delphi-Quellcode: zusammenfalten | markieren
{$IFDEF UNICODE}

// If unicode chars included then write out unicode value first with unicode marker, then write out plain text
  if StringCodePage(Value) <> CP_ACP then begin
  // Write unicode value first
    if StringCodePage(Value) = DefaultUnicodeCodePage then begin
      Encoding := TEncoding.Unicode;
    end else begin
      Encoding := TEncoding.GetEncoding(StringCodePage(Value));
    end;
    WriteIndex(UnicodeMarker);
    WriteIndex(StringCodePage(Value));
    Data := Encoding.GetBytes(Value);
    WriteIndex(Length(Data));
    Stream.Write(Data[0], Length(Data));
  end;

// Convert unicode string to ANSI equivalent for non-unicode
  S1 := AnsiString(Value);
  WriteIndex(Length(S1));
  if Value <> '' then begin
    Write(@S1[1], Length(S1));
  end;

{$ELSE}
  WriteIndex(Length(Value));
  if Value <> '' then begin
    Write(@Value[1],Length(Value));
  end; { if }
{$ENDIF}


Was kann man da machen?

Ciao,

Artur
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
omata #2|Beitrag #1128035Verfasst am: 07.02.2010, 17:45      Titel: Re: Fehler in der Bereichsprüfung bei Rave 8.01 Antworten mit Zitat
sehr aktives Mitglied
Status: offline
Beiträge: 2.666
angemeldet: 26.08.2004
Wohnort: Wedel
Delphi 7 Enterprise

Welche Zeile?

Du kannst aber auch Rave ohne Bereichsprüfung kompilieren und dann die DCUs Delphi zugänglich machen. Dann werden die Quellen nicht nochmal neu kompiliert und es kommt auch kein Fehler.
Schöner ist es natürlich den Fehler zu beseitigen.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
Artur #3|Beitrag #1128173Verfasst am: 08.02.2010, 05:46      Titel: Re: Fehler in der Bereichsprüfung bei Rave 8.01 Antworten mit Zitat
Mitglied
Alter: 40
Status: offline
Beiträge: 56
angemeldet: 31.12.2006
Wohnort: Augsburg
Delphi 2007 Professional

Hi omata,

bei den beiden Stream Befehlen (Stream.Read(Data[0], Len); und Stream.Write(Data[0], Length(Data)); ) kommt der Bereichsüberlauf.

Ciao,

Artur
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
sx2008 #4|Beitrag #1128193Verfasst am: 08.02.2010, 09:57      Titel: Re: Fehler in der Bereichsprüfung bei Rave 8.01 Antworten mit Zitat
aktives Mitglied
Status: offline
Beiträge: 869
angemeldet: 16.02.2008
Delphi 2007 Professional

Welchen Datentyp hat "data" und welche konkrete Klasse hat "stream"? (Breakpoint setzen und stream.classname anzeigen)
Und eigentlich müsste .ReadBuffer() anstelle .read() verwendet werden, da das Ergebnis von .read() nicht ausgewertet wird.
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
Anzeige-Optionen:    
 
Delphi-PRAXiS Forum - Übersicht -> Tools rund um Delphi Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1   [ 4 Beiträge ]  
 
  Neuen Beitrag schreiben Auf Beitrag antworten
als PDF-Datei herunterladenThema ausdrucken
 
   
Gehe zu:  
Du darfst keine Beiträge in dieses Forum schreiben.
Du darfst auf Beiträge in diesem Forum nicht antworten.
Du darfst Deine Beiträge in diesem Forum nicht bearbeiten.
Du darfst Deine Beiträge in diesem Forum nicht löschen.
Du darfst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten.
Du kannst Dateien in diesem Forum nicht herunterladen.


Impressum / Kontakt
Allgemeine Geschäftsbedingungen
Verhaltenskodex & FAQ

Delphi-PRAXiS :: Das Forum für Delphi-Programmierer
Das Experten Forum für Delphi ProgrammiererHilfe für Borland Delphi gibts es hier im ForumDelphi Quelltexte und Source CodesDelphi-PRAXiS :: Das Forum für DelphiWindows APIInternet und NetzwerkeVCL und Datenbanken
 

Delphi-PRAXiS V.2005 III
© 2002-2010 by Daniel R. Wolf
powered by phpBB © phpBB Group

Impressum / Kontakt Allgemeine Geschäftsbedingungen