Ringspeicher mit schnellem Lese- Schreibzugriff



  • Hallo,

    Ich muss zum ersten Mal einen Ringspeicher programmieren. Er muss nach vorgegebener Speichertiefe zwei Parameter speichern können: Wert und Zeitstempel, und sollte auch nach Zeitwerten durchsuchbar sein.

    Finde trotz intensiver Suche kein brauchbares Beispiel. Wer weiß Rat?

    Gruß Leo



  • Keine Ahnung, was du dir konkret unter einem Ringspeicher vorstellst, aber warum nimmst du nicht einfach ein entsprechend dimensioniertes Array oder Listenobjekt.

    Zum Beispiel TStringList. Wenn die festgesetzte Zahl von Einträgen erreicht ist wird der letzte gelöscht und der neue am Anfang eingefügt.

    Achja, was genau verstehst du unter "schnellem Zugriff"?



  • Hi!
    Also, wenn du nur einen Parameter + Zeitstempel speichern musst, so wuerde ich das ganze als Struktur anlegen und dann in einem Vektor speichern.



  • Unter Ringspeicher verstehe jedenfalls ich z.B ein Array, bei welchem man quasi das Ende mit dem Anfang verbindet. Speichert man darin irgendwelche Werte beginnen diese bei Index 0, dann 1, dann 2 usw. bis zu Erreichen des Endes und fangen dann wieder bei 0 an also parktisch "im Kreis herum". Man muß midestens zwei Indexzeiger führen, den einen zum Lesen und den anderen zum Schreiben ...



  • strcut TRingSpeicher
    {
      TRingSpeicher* next;
      TRingSpeicher* last;
      int var1;
      int var2;
    };
    

    Beim hinzufügen...

    pos = Die Postition, wo er rein soll

    TRingSpeicher* neu;
    ...
    neu->next = pos->next;
    neu->last = pos;
    pos->next->last = neu;
    pos->next = neu;
    

    Nach dem Schema kannste dir nen Ringspeicher bauen



  • ist ja auch nichts anderes als ne doppelt verkettete liste...


Anmelden zum Antworten