AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Diverse Probleme mit Strings, SetLength und SizeOf
Thema durchsuchen
Ansicht
Themen-Optionen

Diverse Probleme mit Strings, SetLength und SizeOf

Ein Thema von a.def · begonnen am 1. Mai 2017 · letzter Beitrag vom 1. Mai 2017
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: Diverse Probleme mit Strings, SetLength und SizeOf

  Alt 1. Mai 2017, 16:26
Zitat:
Verwende keine Strings.
Was sollte man denn sonst verwenden wenn keine Strings?
Kommt auf die Anforderung drauf an. z.B. ein festes Array (of Bytes) wäre eine Möglichkeit wenn (wie hier) du eh einen 32-Byte Hashwert vergleichen willst.

Ganz am Ende der Geschichte vergleiche ich dann aber trotzdem 2 Strings.
Und wieso? Du kannst genauso Streams/Array oder ähnliches Vergleichen z.B. mit CompareMem
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#12

AW: Diverse Probleme mit Strings, SetLength und SizeOf

  Alt 1. Mai 2017, 16:27
Zitat:
Und wieso?
Weil es am einfachsten ist und ich das andere nicht kenne.

Ich schaffe es ja noch nicht einmal die Funktion von nahpets oben "rückgängig" zu machen. Also statt Zeichen X an Stelle N einfügen, entfernen.
Dann darf man mir nicht mit Speicheroperationen ankommen
  Mit Zitat antworten Zitat
bepe

Registriert seit: 17. Okt 2006
118 Beiträge
 
#13

AW: Diverse Probleme mit Strings, SetLength und SizeOf

  Alt 1. Mai 2017, 16:34
Grundsätzlich hat Bernhard recht. Wenn du gar nicht mit Texten arbeitest sondern mit (binär) Daten, dann wären TBytes/Array of Byte vorzuziehen/richtiger.

Die Variante mit dem AnsiString ist nur dann OK, wenn das Ergebnis stimmt. Und du damit leben kannst früher oder später vielleicht noch einmal nachbessern zu müssen, weil dir doch etwas auf die Füße gefallen ist.

Das musst du entscheiden: Dich in das Thema einarbeiten oder mit einem Restrisiko leben.

mfg,
bp
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#14

AW: Diverse Probleme mit Strings, SetLength und SizeOf

  Alt 1. Mai 2017, 16:40
Meinst Du sowas?
Ebenfalls nur hingedaddelt:
Delphi-Quellcode:
function DeleteZeichen(sZeichenfolge : String; chZeichen : Char; iPosition : Integer) : String;
var
  i : Integer;
begin
  Result := '';
  for i := 1 to Length(sZeichenfolge) do begin
    if (i mod iPosition = 0)
    and (Copy(sZeichenfolge,i,1) = chZeichen) then
    else Result := Result + Copy(sZeichenfolge,i,1);
  end;
end;
iPosition muss hierbei um eins größer sein als bei InsertZeichen.

Oder:

Delphi-Quellcode:
function DeleteZeichen(sZeichenfolge : String; chZeichen : Char; iPosition : Integer) : String;
var
  i : Integer;
  iPos : Integer;
begin
  iPos := iPosition + 1;
  Result := '';
  for i := 1 to Length(sZeichenfolge) do begin
    if not (i mod iPos = 0) then begin
      Result := Result + Copy(sZeichenfolge,i,1);
    end;
  end;
end;
iPosition muss mit dem von InsertZeichen übereinstimmen.
chZeichen wird nicht benötigt, man könnte aber bei der Positionsabfrage noch prüfen, ob dort auch dieses Zeichen gefunden wird. Wenn nein, hat man einen Zeichenfolge, die eher ungeeignet für die Verarbeitung ist, da (vermutlich) das gesuchte Zeichen nicht per InsertZeichen eingefügt wurde.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: Diverse Probleme mit Strings, SetLength und SizeOf

  Alt 1. Mai 2017, 16:41
Weil es am einfachsten ist und ich das andere nicht kenne.
Da es nicht funktioniert kann du nicht davon sprechen das es einfach ist.

Ich schaffe es ja noch nicht einmal die Funktion von nahpets oben "rückgängig" zu machen. Also statt Zeichen X an Stelle N einfügen, entfernen.
Dann darf man mir nicht mit Speicheroperationen ankommen
Die Frage ist wieso das du das überhaupt benötigst? Hat das mit dem eigentlichen Problem zu tun? Falls nein mach dafür einen eigenen Thread auf.

Zu deinem Eigentlichen Problem habe ich noch was gefunden:
http://www.delphidabbler.com/articles?article=7

Ich würde mir aber überlegen ob ich wirklich einfach so ein paar bytes an eine Exe hängen kann/will.
Es gibt ein definiertes Format (https://de.wikipedia.org/wiki/Portable_Executable) welches du mit solchen angehängten Daten störst (bin jetzt kein PE-Experte, evtl. darf man das ja auch).
Evtl. genügt es diese Info in eine weiter Datei als Salted Hash abzulegen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#16

AW: Diverse Probleme mit Strings, SetLength und SizeOf

  Alt 1. Mai 2017, 16:43
Es funktioniert jetzt wie ich will. Mit strings. Das andere ist mir zu kompliziert.

Zitat:
Die Variante mit dem AnsiString ist nur dann OK, wenn das Ergebnis stimmt.
Das Ergebnis stimmt. Also ist TBytes oder was auch immer hier meiner Meinung nach überflüssig.

Geändert von a.def ( 1. Mai 2017 um 17:00 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 18:46 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