AGB  ·  Datenschutz  ·  Impressum  







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

Löschversuch funktioniert nicht

Ein Thema von Versus · begonnen am 16. Aug 2018 · letzter Beitrag vom 17. Aug 2018
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Löschversuch funktioniert nicht

  Alt 16. Aug 2018, 23:00
Eine weitere Möglichkeit wäre:
Wenn Performance irrelevant ist und es um verschiedene Möglichkeiten geht, hier noch einer:
Delphi-Quellcode:
var
  i: Integer;
  mytext : string;
begin
  myText := '';
  if Length(Edit1.Text) > 0 then
    for i := 1 to Length(Edit1.Text)-1 do
      myText := myText + Edit.Text[i];
  Edit1.Text := myText;
end;
Sollte das gleiche ergeben, ungetestet.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#12

AW: Löschversuch funktioniert nicht

  Alt 16. Aug 2018, 23:45
Das direkt über mir: Sorry, aber für sowas sollte man gesteinigt und gevierteilt werden => Chars "einzeln" aneinanderzuhängen,

aber nochmal was zu dem Copy => Delphi-Referenz durchsuchenLeftStr
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#13

AW: Löschversuch funktioniert nicht

  Alt 16. Aug 2018, 23:45
Da der TE ein Zeichen löschen möchte dachte ich, da delete ganz gut passen würde.
Daß ein copy das performantere delete bei der Verarbeitung von mehreren tausenden Sätzen ist, sollte sich inzwischen herumgesprochen haben.

Gruß
K-H

QHimitsu
Seit wann gibt es das denn`?
Ich dachte das wäre typisch Basic.
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 (16. Aug 2018 um 23:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#14

AW: Löschversuch funktioniert nicht

  Alt 17. Aug 2018, 00:11
Seit mehr als 10 Jahren bestimmt. (spätestens seit FastStrings in Delphi übernommen wurde).
Die Unit StrUtils existiert schon ein Weilchen.



Copy/LeftStr oder Delete ist hier fast gleich performant, aber beim Copy hast den Vorteil, dass es nicht erst in einer Variable zwischengespeichert werden muß, da Funktion <> Prozedur.

Theoretisch ist Delete performanter, da es direkt den String behandelt und nichts umkopiert (so lange es nur eine Referenz auf den String gibt), also "inplace" den String behandelt, ohne dass "oftmals" überhaupt der Speichermanager ran muß, was hier aber eh sinnlos ist, da das Ergebnis am Ende sowieso wieder an die Komponente übertragen (kopiert) werden muß.



Ohne FastMM sind aber so Dinge wie Einzelcharoperationen einfach nur krank,
aber obwohl ab da "größerer" Speicher auch inpace vergrößert/verkleinert werden kann, so lange dahinter noch genug frei ist (kleinere Blöcke gibt es nur in gleichgroßen Gruppen, also ist dahinter nie etwas frei), bringt das hier nichts.
$2B or not $2B

Geändert von himitsu (17. Aug 2018 um 00:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#15

AW: Löschversuch funktioniert nicht

  Alt 17. Aug 2018, 01:37
Leute, es geht nur um das manuelle Löschen eines Zeichens in einem Editfeld. Das wird wohl kaum 100.000 mal in der Sekunde passieren. Performance spielt hier absolut keine Rolle. Warum also jeden Thread mit mehr oder weniger sinnvollen, hoch gezüchteten und optimierten Code kaputt diskutieren?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#16

AW: Löschversuch funktioniert nicht

  Alt 17. Aug 2018, 03:56
... bringt das hier nichts.
.
$2B or not $2B
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#17

AW: Löschversuch funktioniert nicht

  Alt 17. Aug 2018, 08:12
Leute, es geht nur um das manuelle Löschen eines Zeichens in einem Editfeld. Das wird wohl kaum 100.000 mal in der Sekunde passieren. Performance spielt hier absolut keine Rolle. Warum also jeden Thread mit mehr oder weniger sinnvollen, hoch gezüchteten und optimierten Code kaputt diskutieren?
Danke.
Daniel R. Wolf
mit Grüßen aus Hamburg
  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 06:07 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