AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Array of Char --> String: Zusätzliches $ wird angehangen ...
Thema durchsuchen
Ansicht
Themen-Optionen

Array of Char --> String: Zusätzliches $ wird angehangen ...

Ein Thema von Zacherl · begonnen am 1. Jan 2007 · letzter Beitrag vom 1. Jan 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Array of Char --> String: Zusätzliches $ wird angehangen

  Alt 1. Jan 2007, 21:29
Hi,

ich habe folgenden Source, um einen String mit der LHA5Unit zu dekomprimieren:
Delphi-Quellcode:
var
  instream,
  outstream: tmemorystream;
  tmcontent2: array of char;
  i: integer;
begin
    inStream := TMemoryStream.Create;
    outStream := TMemoryStream.Create;
    //try
      inStream.Write(TmContent[1], length(TmContent));
      inStream.Position := 0;
      LHAExpand(inStream, outStream);
      outStream.Position := 0;
      setLength(TmContent2, outStream.Size);
      outStream.Read(TmContent2[0], outStream.Size);
      TmContent := String(PChar(TmContent2));
      setLength(TmContent2, 0);
    //finally
      inStream.Free;
      outStream.Free;
    //end;
    tmcontent := copy(tmcontent, 1, length(tmcontent));
end.
War nur ein Test, deshalb ist der Source nicht so schön formatiert, sorry. Das Problem ist folgendes: Am Ende steht in TmContent zwar der dekomprimierte String, allerdings wird ein $ angehangen. Wenn ich mit Copy das letzte Zeichen entferne, wird das $ zwar entfernt, aber auch das letzte Zeichen

Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Array of Char --> String: Zusätzliches $ wird angehan

  Alt 1. Jan 2007, 21:31
Was steht den in tmcontent2?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

Re: Array of Char --> String: Zusätzliches $ wird angehan

  Alt 1. Jan 2007, 21:54
Am Ende, bevor ich nach String typecaste?
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Array of Char --> String: Zusätzliches $ wird angehan

  Alt 1. Jan 2007, 21:56
Schau dir das ganze mal mit dem Evaluator durch, wann genau das $ dazukommt.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Array of Char --> String: Zusätzliches $ wird angehan

  Alt 1. Jan 2007, 21:57
Um das letzte Zeichen zu entfernen, ist es viel schneller, wenn man die Länge dekrementiert:
SetLengh (MyString, Length (MyString) - 1); Soweit ich das weiss, ist es besser, man verwendet StrPas, um einen PChar in einen String zu konvertieren, kann mich aber irren (Delphi ist grad nicht an).
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Array of Char --> String: Zusätzliches $ wird angehan

  Alt 1. Jan 2007, 21:59
StrPas ist mittlerweile unnötig, weil PChars von Compiler implizit umgewandelt werden.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

Re: Array of Char --> String: Zusätzliches $ wird angehan

  Alt 1. Jan 2007, 22:02
Also bei StrPas bekomme ich den Fehler: inkompatible Typen Array und Char.

Im TmContent2 steht das $ auch schon drinnen. Als letztes Zeichen. Ich versuche es einfach mal daraus zu entfernen, indem ich die Länge decrementiere.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

Re: Array of Char --> String: Zusätzliches $ wird angehan

  Alt 1. Jan 2007, 22:05
Komischerweise geht das beides nicht. Sowohl wenn ich vor dem Typecast nach String die Länge vom TmContent2 dekrementiere, also auch, wenn ich nach dem Typecast TmContent dekrementiere, fehlt das $ und aber auch das letzte Zeichen ...
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: Array of Char --> String: Zusätzliches $ wird angehan

  Alt 1. Jan 2007, 22:25
Florian,

verwende doch einfach mal ein TStringStream. Dort hinein liest du erstmal den dekomprimierten Stream, und prüfst dann die Eigenschaft 'DataString'...
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#10

Re: Array of Char --> String: Zusätzliches $ wird angehan

  Alt 1. Jan 2007, 22:30
Ich würde gerne ohne die Classes Unit auskommen. Meine TMemoryStreams sind selbst definierte Typen, von denen der Fehler allerdings mit 100%er Sicherheit nicht herkommt ...
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz