AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Dateien

Ein Thema von Johannes013 · begonnen am 9. Jun 2009 · letzter Beitrag vom 9. Jun 2009
Antwort Antwort
Seite 1 von 2  1 2   
Johannes013

Registriert seit: 2. Jun 2009
179 Beiträge
 
Delphi 5 Standard
 
#1

Dateien

  Alt 9. Jun 2009, 17:34
Hallo,

ich habe ein Problem:

Wenn ich in einer Stinglist überprüfen lasse, ob in der 4. Zeile, die noch gar nicht existiert, "Testlizenz" steht, kommt die Fehlermeldung, dass ich das Maximum überschreite. Kann man da was machen? Oder kann man den Cursor in der Datei an eine von mir festgelegte Stelle setzen?




Johannes013
Johannes
Der folgende Satz ist richtig.
Der vorherige Satz ist falsch.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.640 Beiträge
 
#2

Re: Dateien

  Alt 9. Jun 2009, 17:36
Du kannst doch die Anzahl der Zeilen in der Stringlist mittels Count überprüfen. Index darf Count-1 nicht überschreiten.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Johannes013

Registriert seit: 2. Jun 2009
179 Beiträge
 
Delphi 5 Standard
 
#3

Re: Dateien

  Alt 9. Jun 2009, 17:39
Kannste mir ein einfaches bsp. nennen? ich bin anfänger und verstehe nicht sehr viel von der Delphi hilfe.




Johannes013
Johannes
Der folgende Satz ist richtig.
Der vorherige Satz ist falsch.
  Mit Zitat antworten Zitat
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#4

Re: Dateien

  Alt 9. Jun 2009, 17:53
Hallo,

Anzahl der Einträge in einer String-List bekommst Du mit
Delphi-Quellcode:
var
 n : Integer; // Anzahl der Listeneinträge
 List : TStringList;
begin
n := List.Count -1; // -1, da der erste Index nicht 1 sondern 0 ist
end;
jetzt kannst Du in einem Bereich von 0 bis n auf die StringList zugreifen
Markus H.
  Mit Zitat antworten Zitat
Johannes013

Registriert seit: 2. Jun 2009
179 Beiträge
 
Delphi 5 Standard
 
#5

Re: Dateien

  Alt 9. Jun 2009, 18:19
Heißt das, wenn der Eintrag "Test" in zeile 5 kommen soll, Zeile 5 noch nicht existiert, ist n=4.
ist das dann:

Delphi-Quellcode:
var
Datei:TextFile;
n:Integer;
List:TStringList;
begin
// Assign (...) und Stringlist benennen bzw. laden.......
Append(Datei);
Writeln(Datei, '1.');
Writeln(Datei, '2.');
Writeln(Datei, '3.');
Writeln(Datei, '4.');
// Writeln(Datei, 'Test');
CloseFile(Datei);
if Copy(List[4],1,4)<>'Testthen Form1.color:=clred;
end;
Dann kommt die Meldung: Index überschreitet das Maximum (4).
Johannes
Der folgende Satz ist richtig.
Der vorherige Satz ist falsch.
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Dateien

  Alt 9. Jun 2009, 18:25
hey, nichts weglassen im Code

Scheint so, also ob Du die StringListe lädst und danach erst die Datei mit Werten füllst?

Liste mit 4 Elementen:
Index = 0 - 3
Count = 4

Bei List[Index] und nur 4 Elementen in der Listen, ist List[4] auserhalb
  Mit Zitat antworten Zitat
Johannes013

Registriert seit: 2. Jun 2009
179 Beiträge
 
Delphi 5 Standard
 
#7

Re: Dateien

  Alt 9. Jun 2009, 18:29
Delphi-Quellcode:
var
Datei:TextFile;
n:Integer;
List:TStringList;
begin
// Assign (...)
Append(Datei);
Writeln(Datei, '1.');
Writeln(Datei, '2.');
Writeln(Datei, '3.');
Writeln(Datei, '4.');
// Writeln(Datei, 'Test');
CloseFile(Datei);
// Benennen bzw laden er List...
if Copy(List[4],1,4)<>'Testthen Form1.color:=clred;
List.Free;
end;
Johannes
Der folgende Satz ist richtig.
Der vorherige Satz ist falsch.
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#8

Re: Dateien

  Alt 9. Jun 2009, 18:32
Das ist immer noch das selbe wie oben oder?
Versuch mal

Copy(List[3], 1, 4) Zeilen wie List.Add(text) oder der Inhalt der Datei, die mit List.LoadFromFile(file) geladen wird, das wäre interessant.
Ich denke aber eigentlich, dass deine Frage schon von den anderen beantwortet wurde
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Dateien

  Alt 9. Jun 2009, 18:35
Also wie oben beschrieben, List[4] greift auf das 5. Element zu.

Der Index von Listen startet bei 0, d.h. das erste Element ist List[0] und das letzte Element List[Count-1].

Der gepostete Code ist aber nicht alles, ich frage nur, weil neben assignFile auch ein List:TStringList.Create fehlt.
  Mit Zitat antworten Zitat
Johannes013

Registriert seit: 2. Jun 2009
179 Beiträge
 
Delphi 5 Standard
 
#10

Re: Dateien

  Alt 9. Jun 2009, 18:42


Delphi-Quellcode:
var
Datei:TextFile;
n:Integer;
List:TStringList;
begin
// Assign (...)
Append(Datei);
Writeln(Datei, '1.');
Writeln(Datei, '2.');
Writeln(Datei, '3.');
Writeln(Datei, '4.');
// Writeln(Datei, 'Test');
CloseFile(Datei);
// Benennen bzw laden er List...
if Copy(List[4],1,4)<>'Testthen Form1.color:=clred;
List.Free;
end;
wie schlte ich die oben genannte Fehlermeldung aus?
Johannes
Der folgende Satz ist richtig.
Der vorherige Satz ist falsch.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 10:19 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