AGB  ·  Datenschutz  ·  Impressum  







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

optimierung bei ersetzen in Richedit

Ein Thema von glkgereon · begonnen am 24. Apr 2004 · letzter Beitrag vom 27. Apr 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

optimierung bei ersetzen in Richedit

  Alt 24. Apr 2004, 18:12
hi

ich hab einen text in etwa diesem format:

Zitat:
abcde fghasd
sdgf sdgfkghsd sdahfksd
und will den in dieses format umwandeln:

Zitat:
hsdkfh sdhfkhsdkfh sdhfkjsdhfksah
sdgfjghsdf sdahfksahdf sadfhksadf
soll heissen: ich hab buchstaben/zahlenpäckchen, und will sämtliche überflüssigen leerzeichen entfernen

das wollte ich so machen:

Delphi-Quellcode:
for i:=1 to length(Richedit1.lines.text) do
   begin
   if Richedit1.lines.text[i]=' '
   then if Richedit1.lines.text[i+1]=''
        then Richedit1.lines.delete(i);
   end;
das if...then if...then statt if ... and ... then
hab ich aus schnelligkeitsgründen gemacht...

so müsste doch funzen, oder?

jetzt mein problem: bei einem langen text brauch der ziemlich lange, um zu überlegen, was jetzt richedit1.lines.text ist...

der hammer ist: der text auf den ich das anwenden will ist 400 Millionen Zeichen lang!!!

kann man das anders machen?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#2

Re: optimierung bei ersetzen in Richedit

  Alt 24. Apr 2004, 19:26
Delphi-Quellcode:
var start,Zeichen:integer;
begin
   start :=0;
   Zeichen:=RichEdit1.GetTextLen;
   repeat
   richedit1.SelStart :=richedit1.FindText(' ',start,zeichen,[stMatchCase]);
   richedit1.SelLength :=1;
   richedit1.SelText :='';
   inc(start);
   until start=zeichen
end;
Versuch's mal so. Naja, bei 400.000.000 Zeichen wird's mit Integer nicht mehr gehen (IntegerMax: 32767). Musst also LongInt nehmen, dass geht bis 2 147 483 647.
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#3

Re: optimierung bei ersetzen in Richedit

  Alt 24. Apr 2004, 19:44
Hi,

1. Was um Himmels Willen sind überflüssige Leerzeichen
2. Minimiere die Aufrufe von Lines.text
3. Schau Dir mal Stringreplace an

Grüsse
Woki
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#4

Re: optimierung bei ersetzen in Richedit

  Alt 24. Apr 2004, 19:46
überflüssige leerzeichen: ich will das zwischen jedem pakjet an zahlen/zeichen genau 1 leerzeichen ist

mit selster, sellength seltext, ... hab ichs auch probiert, habs aber nicht hingekriegt...

@yankee
soweit istr weiss ist in d6 auf jeden fall integer immer ein longint....
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: optimierung bei ersetzen in Richedit

  Alt 24. Apr 2004, 19:49
Moin Yankee,

Zitat von yankee:
IntegerMax: 32767
Nein, integer ist bei einem 32 Bit Compiler 32 Bit gross mit Vorzeichen, und hat somit 2147483647 als Maximalwert.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#6

Re: optimierung bei ersetzen in Richedit

  Alt 24. Apr 2004, 19:53
wie ich schon sagte
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#7

Re: optimierung bei ersetzen in Richedit

  Alt 24. Apr 2004, 19:56
4. Integer: 32 Bit mit Vorzeichen: Empfehlung mal ein Blick in die Delphi Hilfe

ups, zu spät
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#8

Re: optimierung bei ersetzen in Richedit

  Alt 24. Apr 2004, 20:07
Zitat von glkbkk:
überflüssige leerzeichen: ich will das zwischen jedem pakjet an zahlen/zeichen genau 1 leerzeichen ist
Schon verständlicher,
Was ist mit zeilenendekennungen, oder besteht dein Lines nur aus 1 'Zeile'

Grüsse
Woki
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#9

Re: optimierung bei ersetzen in Richedit

  Alt 24. Apr 2004, 20:13
ja, genau das kommt auch noch dazu, aber erst mal reicht mir das, aber hast du dafür schon ne lösung? *gier*, *haben*
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#10

Re: optimierung bei ersetzen in Richedit

  Alt 24. Apr 2004, 20:46
Nun, wenn es um Leerzeichen am Anfang oder Ende eines Strings geht, dann wäre Trim (siehe OH) die Anwort.
Und halt die lines von der 1. bis zur letzten damit bearbeiten (for schleife)
  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 15: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