AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Copy und Delete ohne Strings

Ein Thema von Zacherl · begonnen am 28. Mai 2007 · letzter Beitrag vom 28. Mai 2007
Antwort Antwort
Benutzerbild von Zacherl
Zacherl

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

Copy und Delete ohne Strings

  Alt 28. Mai 2007, 20:06
Hey,

ich habe folgenden kleinen Code:

Delphi-Quellcode:
S1 := Copy(S, 1, 255);
Delete(S, 1, 255);
S2 := Copy(S, 256, 255);
Okey noch schlimmer als gedacht .. natürlich kennt das Programm auch kein Copy und kein Delete .. kann man das irgendwie mit inline Assebler regeln?

Gruß Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Copy und Delete ohne Strings

  Alt 28. Mai 2007, 20:11
Öhm... bist du dir sicher, dass das so nicht funktioniert? Solange der Delphi-Compiler, mit dem du den Maschinencode erzeugst, das alles versteht sollte es doch reichen...
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

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

Re: Copy und Delete ohne Strings

  Alt 28. Mai 2007, 20:18
Ne funktioniert wirklich nicht. Das liegt am Injizieren. Habs allerdings grade hinbekommen. S1 und S2 als ShortString deklarieren und folgendes verwenden:

Delphi-Quellcode:
CopyMemory(@S[1], Mem, 510);
CopyMemory(@S1[1], @S[1], 255);
CopyMemory(@S2[1], @S[256], 255);
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Copy und Delete ohne Strings

  Alt 28. Mai 2007, 20:25
du solltest eventuell einen Teil des durchgestrichenen im ersten Beitrag entfernen damit man auch weiß warum copy etc. nicht funktioniert. Ansonsten ist es ein recht arger krampf den durchgestrichenen Text zu lesen. Zumal man denkt das der durchstrichene Text irrelevant ist eben weil er gestrichen wurde.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von ErazerZ
ErazerZ

Registriert seit: 27. Mai 2005
Ort: Baden
315 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Copy und Delete ohne Strings

  Alt 28. Mai 2007, 21:56
Sowas?
Delphi-Quellcode:
function MyLength(s: string): Integer;
begin
  asm
    xor ecx, ecx
    cmp dword ptr [s], 0
    je @@exit
    mov eax, [s]
  @@start:
    inc ecx
    cmp byte ptr [eax+ecx], 0
    jne @@start
  @@exit:
    mov [result], ecx
  end;
end;

function MyCopy(s: string; start, len: Integer): string;
var
  x: Integer;
begin
  result := '';
  if (start >= 0) and (len >= 0) then
  begin
    for x := start to (start + len) -1 do
    begin
      result := result + s[x];
    end;
  end;
end;

procedure MyDelete(var s: string; start, len: Integer);
var
  x: Integer;
  tmp: string;
begin
  if (start >= 0) and (len >= 0) then
  begin
    tmp := '';
    if (start > 1) then
    begin
      for x := 1 to start -1 do
      begin
        tmp := tmp + s[x];
      end;
    end;
    x := (start + len);
    repeat
      tmp := tmp + s[x];
      x := x +1; // kein inc >_>
    until s[x] = #0; // achtung prüft nur auf #0 zeichen!
    s := tmp;
  end;
end;
Aber du kannst ja immer noch die APIs benutzen, lstrlen etc.
  Mit Zitat antworten Zitat
Antwort Antwort


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