![]() |
Record finden
Hallo
habe folgenden Code:
Delphi-Quellcode:
type
TArtRec = record ID: Integer; D1: string; D2: string; end; var ArtArr: array of TArtRec; beim Starten des Programmes erfolgt :
Delphi-Quellcode:
sl.LoadFromFile('whh_2.csv');
SetLength(ArtArr, sl.count); for i := 0 to sl.count - 1 do begin tea := Explode(';', sl.Strings[i]); if IsStringInteger(tea[0]) = true then ArtArr[i].id := StrToInt(tea[0]) else ArtArr[i].id := i; ArtArr[i].d1 := tea[1]; ArtArr[i].d2 := tea[2]; end; soweit so gut funktioniert alles.. Aber nun möchte ich in einem Edit feld eine zahl eingeben diese ist gleich dem Feld ID.. - hab cih so gelöst!
Delphi-Quellcode:
Allerdings habe ich dann für einige Sekunden nee völlige System Auslastung (Programm friert ein) (gerade mal 300 Datensätze im record)... wo hab ich da wohl nun meinen denkfehler bzw. zu kompliziert gearbeitet? Danke Euch
procedure TWK_Form.onrChange(Sender: TObject);
var i: Integer; begin if not (onr.text = '') then begin for i := 0 to allcnt - 1 do begin if (ArtArr[StrToInt(onr.text)].ID = StrToInt(onr.text)) then begin artikel_label.Caption := ArtArr[i].d1; preis_label.Caption := ArtArr[i].d2; end; end; end; end; |
Re: Record finden
Hallo TheCatcher.
Ich fürchte die von dir angewendete Methode ist doch etwas aufwendig. (Das ist das was dir dein Rechner versucht mitzuteilen, wenn er kurz einfriert. :mrgreen: ) Du kanst mehrere Möglichkeiten deinen Algorithmus performanter zu gestalten:
Gruß, Panthrax. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz