Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Schleife konstruieren (https://www.delphipraxis.net/174972-schleife-konstruieren.html)

jupiter4065139 22. Mai 2013 16:03

Delphi-Version: 5

Schleife konstruieren
 
Hallo allesamt,

ich hab nen problem mit einem Datensatz, der zeitlich getaktet ist z.B. so:
Delphi-Quellcode:
 
Abtastung:=2000;
Zeitschritt:=Zeitschritt+1/Abtastung;    
wertestr := FloatToStr(Zeitschritt);  

       If (Zeitschritt > 1000/Abtastung) then begin
                ...      

         delete(wertestr,1,100);                  
              end;
Ich möchte jetzt, wenn der Zeitschritt größer 0.5 (=1000/Abtastung) die Abtastung verkleinern auf 100 und die Zwischenwerte löschen. Anders ausgedrückt, ich suche ne Schleife in der ich die nächsten 19 Werte lösche, den 20. Wert behalte, die nächsten 19 wieder lösche usw. Kann mir vielleicht jemand nen Denkanstoss geben, wie ich das am besten in einer Schleife löse.

Vielen Dank schonmal, Jupi

Back2Code 22. Mai 2013 16:14

AW: Schleife konstruieren
 
Meinst du sowas in etwa?

Mehr Pseudocode als richtiger...

Delphi-Quellcode:
procedure Schleife;
var
  i: Integer;
  Element : TStringList;
begin
  Element := TStringList.Create;
  for i := Element.Count to 20 - 1 do
    begin
    if i = 20 then
      //Element.Count[i].SaveIrgendwas
    //DeleteBefehl;
    end;
  Element.Free;
end;

Bjoerk 22. Mai 2013 16:14

AW: Schleife konstruieren
 
Keine Ahnung was du meinst, sieht aber nach mod aus?

Delphi-Quellcode:
If Value mod 20 = 0 then ..
Wenn Value geteilt durch 20 Rest Null ergibt, also durch 20 teilbar ist.

Das würde allerdings voraussetzen, daß Value ein integer ist.

jupiter4065139 22. Mai 2013 16:46

AW: Schleife konstruieren
 
Zitat:

Zitat von Polymorphin (Beitrag 1216082)
Meinst du sowas in etwa?

Mehr Pseudocode als richtiger...

Delphi-Quellcode:
procedure Schleife;
var
  i: Integer;
  Element : TStringList;
begin
  Element := TStringList.Create;
  for i := Element.Count to 20 - 1 do
    begin
    if i = 20 then
      //Element.Count[i].SaveIrgendwas
    //DeleteBefehl;
    end;
  Element.Free;
end;

Ja, ich glaub du hast verstanden wie ich das vorhab. Mit TStringList hab ich auch schon probiert, bin aber purer Anfänger. Wenn ich das mit dem Element.count[i] probiere kommt der Fehler, dass ein Array Typ erforderlich ist, obwohl es doch als TStringlist deklariert ist. Und wie mach ich denn das mit Save-Befehl ?

DeddyH 22. Mai 2013 16:57

AW: Schleife konstruieren
 
Count ist eine ReadOnly-Eigenschaft von TStringlist und hat mit den Zeilen nichts zu tun. Auf die einzelnen Zeilen kannst Du entweder über Stringlist.Items[i] oder einfach Stringlist[i] zugreifen. Falls Du mit Save() das Speichern in eine Datei meinst, dann schau Dir mal die Methode SaveToFile an.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:35 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