AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Schleife mit Ini Datei: EAccesViolation

Ein Thema von Stanlay Hanks · begonnen am 21. Apr 2003 · letzter Beitrag vom 21. Apr 2003
Antwort Antwort
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#1

Schleife mit Ini Datei: EAccesViolation

  Alt 21. Apr 2003, 20:04
Hallo zusammen. Mein Gott...ich und die Ini Dateien.
Ich krieg bei folgendem Code immer eine EAccesViolation.
Ich habe ein EditFeld, in das ich einen Namen eingeben und eine Listbox, in der alle vorhandenen Kategorien sind. Jetzt will ich, dass das Programm den String einer zeile ausliest, eine IniDatei mit dem Namen des Strings öffnet und dann, falls der String aus dem Editfeld in der Ini Datei als Section existiert, den Namen der gerade durchsuchten Ini in die erste Zeile des StringGrid schreibt. (...Hoffentlich versteht ihr das, ich verstehs nämlich selber fast nicht )
Könnt ihr mir sagen, wo da der Fehler liegt?

Delphi-Quellcode:
procedure TForm1.BilderSuche(LBS1: TListbox);
var
BilderSuchIni : TIniFile;
BilderSuchInt : Integer;
begin
For BilderSuchInt := 0 to LBS1.Items.Count -1 do
BilderSuchIni := TIniFile.Create(PathS+LBS1.Items.Strings[BilderSuchInt]+'.ini'); //PathS ist der Programmpfad ;
Try
IF BilderSuchIni.SectionExists(Edit1.Text) THEN // <--- Hier bekomm ich nen Error
StringGrid1.Cells[0,StringGrid1.RowCount-1] := LBS1.Items.Strings[BilderSuchInt];
StringGrid1.Cells[1,StringGrid1.RowCount-1] := Edit1.Text;
StringGrid1.Row := StringGrid1.Row +1;
end;
finally FreeAndNil(BilderSuchIni);
end;
end;
Danke fürs Lesen. Man liest sich. Stanlay
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#2
  Alt 21. Apr 2003, 20:12
Hallo,

das Create der Ini, vor die for-Schleife, Du erzeugst/öffnest ja ständig die gleiche Datei.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#3
  Alt 21. Apr 2003, 20:13
Hallo,

und die Schleife ins try.

Delphi-Quellcode:
Ini.Create
try
  for
finally
end
Grüsse, Daniel
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#4
  Alt 21. Apr 2003, 20:18
Das Problem ist ja. Ich hab ja auch mehrere Ini Dateien.

Das ganze ist so ne Art von Bild verwaltung (Fast...). Ich hab eine IniDatei in der alle Kategorien gespeichert werden. Und die Einträge jeder Gruppe, werden in einer extra Ini Datei gespeichert (Also zz.B. für die Kategorie Geburtstag hab ich eine Geburtstag.ini in der dann Section wie [Torte], [Geschenke] usw. gespeichert werden. Die Kategorien lese ich bei Programmstart in eine Listbox ein. Jetzt soll die For Schleife bei jedem Druchlauf schauen, ob es in irgendeiner dieser Inis ein Bild (eine Section gibt) die den Namen aus Edit1 hat. Ich muss also ständig eine neue Ini Datei öffnen.
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#5
  Alt 21. Apr 2003, 20:19
Hallo,

*grmpfl*
In der falschen Sparte bist Du ja auch noch.
Programmieren allgemein gilt für alles andere was nicht mit Delphi zutun hat!
Ich verschiebe es mal nach Delphi-Language.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#6
  Alt 21. Apr 2003, 20:24
Hallo,

vielleciht wäre es besser/einfacher, alle Inis auf einmal zu laden, in StringLists o.ä., damit dann in ruhe Arbeiten und am Ende wieder alle beschreiben.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#7
  Alt 21. Apr 2003, 20:26
Da hast du natürlich recht. Aber dazu bräuchte ich ja eine ähnliche/fast gleiche Schleife, oder? (Ich hab ja eine unbekannte Anzahl an Kategorien, also Inis)
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#8
  Alt 21. Apr 2003, 20:28
Hallo Stanlay,
wie Daniel bereits erklärt hat, öffnest du in der for-Schleife alle Ini-Daten nacheinander. Der folgende try Block wird dann nur noch mit der zuletzt geöffneten Ini-Datei durchgeführt. Du musst nach do einen begin ... end Block benutzen:

Delphi-Quellcode:
For BilderSuchInt := 0 to LBS1.Items.Count -1 do
{ hier jetzt das BEGIN }
begin
  BilderSuchIni := TIniFile.Create(PathS+LBS1.Items.Strings[BilderSuchInt]+'.ini'); //PathS ist der Programmpfad ;
  Try
   IF BilderSuchIni.SectionExists(Edit1.Text) THEN
...
end;
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#9
  Alt 21. Apr 2003, 20:33

DUMMMMMMMMMDUMMMMMDUMMMMM

Ich Depp. Man, tut mir leid, dass ich eúch aufgehalten hab. Das was ihr schreibt, hab ich zwar auch alles richtig gemacht und muss ich noch verbessern, aber die EAccesViolation hab ich bekommen, weil ich eine falsche, nämlich leere Listbox übergeben hab.


Tut mir leid, nächstes mal pass ich besser auf. (Schämmm)

Man liest sich (falls jetzt noch wer auf meine Fragen antwortet)
Stanlay.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#10
  Alt 21. Apr 2003, 21:32
Moin Stanlay,

falls es Dich beruhigt:
Den Fehler an der falschen Stelle zu suchen, ist wohl jedem schon mehr als einmal passiert
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  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 05:37 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