TRichEdit - String gefunden an die Positon + 10 Zeilen weiter gehen
-
Ich hab es in diesem Fall mit GetTickCount() gemacht
int start; int ende; int dauer; start = GetTickCount(); // zu messende Anweisungen ende = GetTickCount(); dauer = ende - start; // dauer enthält die Zeitspanne in Millisekunden
-
oha - das ja ne einfache funktion - aber die war mir noch unbekannt. und wieder hinzugelernt

-
dern00b schrieb:
oha - das ja ne einfache funktion - aber die war mir noch unbekannt. und wieder hinzugelernt

in der Hilfe kann man ganz gut funktionen nachschlagen die man sieht und noch nicht kennt

mfg
BigNeal
-
+-100 wahr auch nur ein Beispiel.
Kannst auch +-1000 nehmen bzw. kannst das auch frei vom User einstellbar machen.
Hab da mal sowas gebastelt.
Bei 40000 Zeilen und +-1000 dauert das ca 0,25 Sek.
Bei +-100 so 0,06 Sek.
-
naja aber mann muss den namen ja haben.
also ich habe mich schonmal ne halbe nacht mit der hilfe beschäftigt und habe da auch viele spielereien kennengelernt
ich bin ja auch lernwillig und fleißig was das angeht.
dafür habe ich in technische informatik ne 3 in netzwerktechnik ne 4 und werde wohl das zweite cisco-zertifikat nicht schaffen
dafür programmierung theorie ne eins und praxis erst recht ne 1+ mit sternchen und auszeichnung.
bsp verkettung: aufgabe die autoschlange realisieren - bei mir kriegt jedes auto dann noch kennzeichen :P. ich werde in der scvhule net wirklich gefordert. ich lerne durch EUCH!!1D A N K E

-
@Joe M.
Erstmal sehen ob das was für ihn ist.
-
remark schrieb:
+-100 wahr auch nur ein Beispiel.
Kannst auch +-1000 nehmen bzw. kannst das auch frei vom User einstellbar machen.
Hab da mal sowas gebastelt.
Bei 40000 Zeilen und +-1000 dauert das ca 0,25 Sek.
Bei +-100 so 0,06 Sek.dann muss ich den ganzen etxt inna SL speichern.
ich habe aber auch ein multiselect - sprich der user kann mehrere files gleichzeitig analysieren und kriegt dann die fehler hintereinander ausgegeben.
dann mache ich das so - dass der solange in der listbox nach oben geht bis er den dateinamen findet , den ich dort angebe, dann das file lädt, und dann in dem file sucht

bestimmt net sehr effektiv^^
-
dann muss ich den ganzen etxt inna SL speichern.
Na und. Jetzt lädst du auch alles ins RichEdit.
Könnte dir das mal mailen, damit du siehst was ich meine.
-
dern00b schrieb:
naja aber mann muss den namen ja haben.
also ich habe mich schonmal ne halbe nacht mit der hilfe beschäftigt und habe da auch viele spielereien kennengelernt
den Namen das hattest du ja auch vom code von Joe.. war ja ein auffälliges muster, wenn du den code mal kurz studiert hättest.
mfg
BigNeal
-
gerne

-
RZ30CTLS60.BPI
fehlt bei mir.

aber ich habe es verstanden wie du es meinst
-
Sorry hab dir ne andere bpr geschickt.
-
die idee ist gut.
allerding habe ich nur noch eine woche zeit. und ich habe hier noch einige aufgaben mehr...
wenn noch zeit übrig ist, dann werde ich das so umstrukturieren.
das wäre jetzt erstmal zuviel aufwand.
-
Ihr hattet sogar alle recht.
IndexOf() ist schneller als eine schleife. habe jetzt mein progg auf indexOf() umgestellt am wochenende.//----------------------------------
PROBLEM:
da in der richedit probleme entstanden sind mit dem scrollen, hat ein programmierer mir den tipp gegeben von der richedit wieder auf ein memo umzusteigen.
gesagt getan.
allerdings funktioniert jetzt zwar das springen in die richtige zeile, aber er selektiert es nicht mehr. die memo hat aber diese eigenschaften
if(MehrfachAuswahl == 0) //wir haben nur ein logfile auf nen crash untersucht der Dateinamen steht oben im label!!! { AnsiString ErrorString = ErrorLB->Items->Strings[ErrorLB->ItemIndex]; TStringList *LogFile = new TStringList; try { Ausgabe->Lines->LoadFromFile(DateiNameLabel->Caption.c_str()); LogFile->LoadFromFile(DateiNameLabel->Caption.c_str()); } catch(...) { ShowMessage("Fehler Beim Laden der Datei"); delete LogFile; return; } int zeilennummer = LogFile->IndexOf(ErrorString); if(zeilennummer > 0) { HinScrollen(zeilennummer); } else { ShowMessage("Falsche Auswhal?"); } delete LogFile; //speicher wieder freigeben return; }und das eigentliche selektieren
void TLogFileForm::HinScrollen(int zeilennummer) { //hier springen wir in die mitte des RichEdits //erst nach oben - dann zehn zeilen weiter und dann zu der zeile int sichtbare_zeilen = 10; Ausgabe->SelStart = Ausgabe->Perform(EM_LINEINDEX, 0, 0); Ausgabe->Perform(EM_SCROLLCARET, 0, 0); Ausgabe->SelStart = Ausgabe->Perform(EM_LINEINDEX, zeilennummer + sichtbare_zeilen, 0); Ausgabe->Perform(EM_SCROLLCARET, 0, 0); Ausgabe->SelStart = Ausgabe->Perform(EM_LINEINDEX, zeilennummer, 0); Ausgabe->SelLength = Ausgabe->Lines->Strings[zeilennummer].Length(); Ausgabe->Perform(EM_SCROLLCARET, 0, 0); }
-
ach scheiße. habe das problem schon selebr gefunden
HideSelection war auf true. das musste auf FalseARGH ich noob ich