AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Inis: Letzten Eintrag löschen und den Rest um eins aufrücken
Thema durchsuchen
Ansicht
Themen-Optionen

Inis: Letzten Eintrag löschen und den Rest um eins aufrücken

Ein Thema von malo · begonnen am 27. Feb 2005 · letzter Beitrag vom 27. Feb 2005
Antwort Antwort
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#1

Inis: Letzten Eintrag löschen und den Rest um eins aufrücken

  Alt 27. Feb 2005, 18:35
Ich hab in einer ini Einträge gemacht, die etwa so aussehen:

Code:
[Platz 1]
Name=irgendwas
Zeit=10000

[Platz 2]
Name=irgendwasanderes
Zeit=10001

...

[Platz 10]
Name=bla
Zeit=10009
Jetzt will ich den letzten Eintrag löschen und sonst an einer beliebigen Stelle alle Einträge "ein Feld aufrücken" lassen. Also alle Nummern hinter "Platz" sollen um 1 erhöht werden (ab einer bestimmten Nummer). Nur leider fehlt mir da grad mal ein kleiner Denkanstoß, wie ich das genau realisiere...
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#2

Re: Inis: Letzten Eintrag löschen und den Rest um eins aufrü

  Alt 27. Feb 2005, 19:29
Ich weiß ja nicht, aber wäre da eine typisierte Datei nicht viel sinnvoller? Zumal, sofern es sich um einen Highscore handelt, typisierte Dateien nicht so leicht manipulieren lassen.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von sECuRE
sECuRE

Registriert seit: 10. Apr 2003
Ort: Heidelberg
360 Beiträge
 
Delphi 7 Professional
 
#3

Re: Inis: Letzten Eintrag löschen und den Rest um eins aufrü

  Alt 27. Feb 2005, 19:44
Hi,

Denkanstoss: Alles in eine Liste laden und erneut abspeichern.

Auf Wunsch poste ich auch ein Beispiel, hab sowas (ähnliches) schon mal gemacht.

cu
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#4

Re: Inis: Letzten Eintrag löschen und den Rest um eins aufrü

  Alt 27. Feb 2005, 20:07
Zitat von Khabarakh:
Ich weiß ja nicht, aber wäre da eine typisierte Datei nicht viel sinnvoller? Zumal, sofern es sich um einen Highscore handelt, typisierte Dateien nicht so leicht manipulieren lassen.
Der Einwand ist völlig berechtigt und ich werd mir das auch nochmal durch den Kopf gehen lassen

Zitat von sECuRE:
Denkanstoss: Alles in eine Liste laden und erneut abspeichern.
Ja, aber wie erhöhe ich dann genau die Nummern der einzelnen Werte? Das bleibt immer noch offen (und ich will nicht unbedingt alles einzeln speichern...).

Zitat von sECuRE:
Auf Wunsch poste ich auch ein Beispiel, hab sowas (ähnliches) schon mal gemacht.
Das wär echt super!
  Mit Zitat antworten Zitat
Benutzerbild von sECuRE
sECuRE

Registriert seit: 10. Apr 2003
Ort: Heidelberg
360 Beiträge
 
Delphi 7 Professional
 
#5

Re: Inis: Letzten Eintrag löschen und den Rest um eins aufrü

  Alt 27. Feb 2005, 20:09
Hi,

entscheid dich erstmal für einen der Threads beziehungsweise welche Methode du überhaupt nutzt, danach schauen wir uns das mit dem Beispiel (wenn überhaupt noch benötigt) noch mal genauer an...

cu
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#6

Re: Inis: Letzten Eintrag löschen und den Rest um eins aufrü

  Alt 27. Feb 2005, 20:13
Also ich hab jetzt schon vor, das mit den inis fertig zu machen... wenn ich auf typirisierte Dateien umsteigen würde, müsste ich jetzt zu viel ändern...
  Mit Zitat antworten Zitat
Benutzerbild von sECuRE
sECuRE

Registriert seit: 10. Apr 2003
Ort: Heidelberg
360 Beiträge
 
Delphi 7 Professional
 
#7

Re: Inis: Letzten Eintrag löschen und den Rest um eins aufrü

  Alt 27. Feb 2005, 20:17
Hi,

achso... Gut, dann schau mal hier:
Delphi-Quellcode:
// fn = filename
// s = section
// n = name
procedure ReArrangeIni(fn,s,n,ins:string);
var ini:TIniFile; c:integer; t:string; nt:TStrings;
begin
ini:=TIniFile.Create(fn);
try
 nt:=TStringList.Create;
 try
  for c:=0 to (ini.ReadInteger(s,ins,0)-1) do begin
   t:=ini.ReadString(s,n+IntToStr(c),'');
   if (length(t) > 0) then nt.Add(t);
   ini.DeleteKey(s,n+IntToStr(c));
  end;
  for c:=0 to (nt.Count-1) do
   ini.WriteString(s,n+IntToStr(c),nt.Strings[c]);
  ini.WriteString(s,ins,IntToStr(nt.count));
 finally
  nt.free;
 end;
finally
 ini.free;
end;
end;
Das funktioniert allerdings nur, wenn die ini in folgendem Format abgespeichert ist:
Code:
[section]
ins=1
0=blah
Vielleicht kannst du es ja "portieren".

cu
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#8

Re: Inis: Letzten Eintrag löschen und den Rest um eins aufrü

  Alt 27. Feb 2005, 20:27
Erstmal danke


Nur jetzt mal eine Frage dazu: Was sortiert dieser Code wie genau? Das kann ich so nicht unbedingt überblicken...
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Inis: Letzten Eintrag löschen und den Rest um eins aufrü

  Alt 27. Feb 2005, 23:00
Zitat von malo:
Erstmal danke


Nur jetzt mal eine Frage dazu: Was sortiert dieser Code wie genau? Das kann ich so nicht unbedingt überblicken...
So wie ich das sehe, wird dabei überhaupt nichts sortiert. Oder täusche ich mich da etwa?

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:55 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