![]() |
Kann Datei nicht öffnen
Hab ne billige Datei erstellt.
Zitat:
benannt habe ich Sie Drum.txt Wenn ich die öffne mit TStringList wird sie gelesen. Und die Einträge addiert. Will ich sie dann freigeben die StringList kracht meine Anwendung. Nehme ich hingegen meine Instrument.txt und benenne sie nach Drum.txt um funktioniert alles so wie es soll. Benenne ich die Drum.txt um nach Instrument.txt dann krachts. jemand sowas schon erlebt? Kein Schreibschutz alle Attribute vorhanden lesen usw... Keine Ahnung was ich da machen soll. Mir noch nie untergekommen sowas. gruss |
AW: Kann Datei nicht öffnen
Zeig mal etwas mehr Code. Ich kann mir nicht vorstellen, dass es am Dateinamen liegt. Kann es sein, dass sie irgendwann wieder gelöscht wird?
Delphi-Quellcode:
Keine Probleme.
procedure TForm14.Button1Click(Sender: TObject);
var sl: TStringList; i: Integer; begin if OpenDialog1.Execute then begin sl := TStringList.Create; try sl.LoadFromFile(OpenDialog1.FileName); for i := 0 to sl.Count - 1 do begin Listbox1.Items.Add(sl[i]); end; finally sl.Free; end; end; end; Was machst du noch mit der Datei? Bist du im richtigen Pfad? Existiert die Datei? Vorher mal mit FileExists prüfen. Mehr fällt mir jetzt auch nicht ein. |
AW: Kann Datei nicht öffnen
Zitat:
Dadurch wird sie von einer anderen Funktion gelesen auch hier kracht es. Lese ich hingegen die Instrument,txt mit der Funktion die vorher die Drum.txt gelesen hat dann funktioniert alles. Es muss an der Datei liegen aber frag mich mal was .. ??
Delphi-Quellcode:
Da ist nichts falsch zumindest nicht was ich sehen kann.
if DrumList.ListCount(SKAERO_GetMainItem(ID_DRUMLIST)) = 0 then
begin InstList := TStringList.Create; try InstList.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'Config\Drum.txt'); SetLength(DRArrayList, InstList.Count -1); for IntI := 0 to InstList.Count -1 do begin DRArrayList[IntI] := InstList.Strings[IntI]; tmpStr := Split(DRArrayList[IntI],','); DrumList.ListAdd(SKAERO_GetMainItem(ID_DRUMLIST), tmpStr[0]); end; finally InstList.Free; tmpStr := nil; end; end;
Delphi-Quellcode:
SKAERO_GetMainItem(ID_DRUMLIST)
Ist das Handle der DrumList! gruss |
AW: Kann Datei nicht öffnen
Das einzig ungewöhnliche, was mir auffällt ist das
Delphi-Quellcode:
. Warum setzt du den lokalen String auf nil?
tmpStr := nil;
Ist in einer Textdatei eventuell ein Fehler drin? Was macht Split? Eventuell kracht es da. Tut mir Leid ich kann auch nur raten im Moment. Ein Moment:
Delphi-Quellcode:
Das Array ist zwar nullbasierend, aber Count gibt die Anzahl der Elemente an. Du hast ein Element zu wenig. Und in einer Datei hast du eventuell am Ende noch eine Leerzeile, deswegen kracht es bei dieser nicht. Du hast die Elemente 0 - 9 Das sind 10 Elemente und Count sollte dir auch 10 zurückgeben. Die Schleife muss aber natürlich von 0 bis 9 laufen.
SetLength(DRArrayList, InstList.Count -1);
|
AW: Kann Datei nicht öffnen
Zitat:
Aber der Fehler tritt bei Free auf. Dateien werden alle ordnungsgemäß addiert mit der Spilt funktion.
Delphi-Quellcode:
function Split(const Source, Delimiter: string): TSplitStrArray;
var spCount: integer; spPos: integer; spLength: integer; sTemp: string; aSplit: TSplitStrArray; begin sTemp := Source; spCount := 0; spLength := Length(Delimiter) - 1; repeat spPos := Pos(Delimiter, sTemp); if spPos = 0 then break else begin Inc(spCount); SetLength(aSplit, spCount); aSplit[spCount - 1] := Copy(sTemp, 1, spPos - 1); Delete(sTemp, 1, spPos + spLength); end; until False; if Length(sTemp) > 0 then begin Inc(spCount); SetLength(aSplit, spCount); aSplit[spCount - 1] := sTemp; end; Result := aSplit; end; gruss |
AW: Kann Datei nicht öffnen
Guck dir meinen letzten Beitrag noch mal an. Ich habe noch was ergänzt. Aber warum machst du das?
|
AW: Kann Datei nicht öffnen
Zitat:
Zitat:
Ist mir jetzt zu später stunde nicht aufgefallen.
Delphi-Quellcode:
Habs jetzt berichtig und jetzt funktioniert es.
SetLength(InstArrayList, InstList.Count);
Danke gruss |
AW: Kann Datei nicht öffnen
je später der Abend, desto schöner die Bugs. ;)
|
AW: Kann Datei nicht öffnen
Zitat:
gruss |
AW: Kann Datei nicht öffnen
Manchmal hilft es auch einfach mal schlafen zu gehen. und sich das am nächsten Morgen noch mal ausgeschlafen anzugucken. ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz