AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Fehler beim Laden einer Textdatei

Ein Thema von gangs-taas · begonnen am 16. Jul 2009 · letzter Beitrag vom 16. Jul 2009
Antwort Antwort
Seite 1 von 2  1 2   
gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#1

Fehler beim Laden einer Textdatei

  Alt 16. Jul 2009, 16:23
hey,
ich muss schon wieder fragen wie etwas geht ^^
also wenn ich es mit debugger ausführe bekomme ich an der stelle im quelltext die fehlermeldung
(als kommentar hier im quelltext)

und wenn ich die exe ausführe kriege ich ne meldung 'nicht genügend arbeitsspeicher' was ich sehr komisch finde
ich habe 3gb arbeitsspeicher




also ich will aus 2 textdatein den textladen aber es ghet nicht so wie ich es will ^^

Delphi-Quellcode:
var
  Form1: TForm1;
  Zwischenspeicher : TStringlist;
  Zwischenspeicher2 : TStringlist;
  Textdatei,Textdatei2 : String;
  const Woche='C:\Users\Ich\Desktop\Kalender\Termine 2009\';
  const ext = '.txt'   ;
implementation

{$R *.dfm}



procedure TForm1.InDieMemoFelderSchreiben(var Textdatei,Textdatei2: String);
var
  i : integer;
  zv : integer;
  zv2 :integer;
  Pruefstring : String ;
begin
  zv := 0;
  zv2 := 0;
    if FileExists(Textdatei) and FileExists(Textdatei2) then begin
      Zwischenspeicher.LoadFromFile(Textdatei);
      Zwischenspeicher2.LoadFromFile(Textdatei2); // {und hier kriege ich dann einen Fehler sprich:
                                                       "Erste Gelegenheit für Exception bei $764642EB. Exception-Klasse EAccessViolation mit Meldung 'Zugriffsverletzung bei Adresse 0046DE99 in Modul 'Projectl.exe'. Lesen von Adresse 00000000'. Prozess Projectl.exe (4420)
"}
    end
    else erstellen;
    if (Zwischenspeicher.Count > 7) Then
      Stop_prüfen
    else
       If (Zwischenspeicher2.Count > 7) then
       Stop_prüfen
    Else
    For i := 0 To 3 do begin
      Form1.Memo1.Text := Form1.Memo1.Text + Zwischenspeicher[Zv]+ #13#10;
      Pruefstring := Zwischenspeicher[Zv];
      if Pruefstring = 'Keine Terminethen begin
      inc(zv);
      break;
    end;
      inc(zv);
    end;
    [...]
    For i := 0 To 3 do begin
      Form1.Memo8.Text := Form1.Memo8.Text + Zwischenspeicher2[Zv2]+ #13#10;
      Pruefstring := Zwischenspeicher[Zv];
      if Pruefstring = 'Keine Terminethen begin
      break;
    end;
      inc(zv2);
    end;
end;

procedure Tform1.Stop_prüfen;
begin
if Zwischenspeicher.Count > 7 then begin
  While Zwischenspeicher.Count > 7 do
  Zwischenspeicher.Add ( #13#10 + 'Keine Termine');
end
Else
While Zwischenspeicher2.Count > 7 do
  Zwischenspeicher2.Add ( #13#10 + 'Keine Termine');
end;


procedure Tform1.Erstellen;
Var
  F : Textfile;
begin
  if not FileExists(Textdatei) then Begin
    assignfile(f, Textdatei);
    rewrite(f);
    closefile(f);
    while Zwischenspeicher.Count < 8 do begin
      Zwischenspeicher.Add('Keine Termine');
    end;
    Zwischenspeicher.SaveToFile(Textdatei);
End;
    if not FileExists(Textdatei2) then Begin
      assignfile(f, Textdatei2);
      rewrite(f);
      closefile(f);
    while Zwischenspeicher.Count < 8 do begin
    Zwischenspeicher.Add('Keine Termine');
   end;
    Zwischenspeicher.SaveToFile(Textdatei2);
end;
end;


procedure TForm1.FormCreate(Sender: TObject);
Var
  KWoche : integer;
begin
  KWoche := WeekOfTheYear(Now);
  Edit1.TExt:= IntToStr(KWoche);
  Zwischenspeicher := TStringList.Create;
  if(KWoche > 0) Then begin
    Textdatei := woche+IntToStr(KWoche)+ext;
    Textdatei2 := woche+(IntToStr(KWoche +1))+ext;
    InDieMemoFelderSchreiben(Textdatei, Textdatei2);
    Datum_Wochen_Start_erstellen ;
  end;
end;


end.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.199 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Fehler beim Laden einer Textdatei

  Alt 16. Jul 2009, 16:24
Wie wärs mit erzeugen? Zwischenspeicher wurde erzeugt, aber Zwischenspeiche2 nicht.

Und Unit-Globale-Variablen sind schrecklich.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.151 Beiträge
 
Delphi 12 Athens
 
#3

Re: Fehler beim Laden einer Textdatei

  Alt 16. Jul 2009, 16:26
erstmal die grundsätzliche Frage:

Wo erstellst du das Objekt Zwischenspeicher2?

[edit] wo kommt den der Post da eben her
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PosEx im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#4

Re: Fehler beim Laden einer Textdatei

  Alt 16. Jul 2009, 16:27
man natürlich habt ihr recht....

und ich suche den fehelr und sehe ihn nicht ...
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Fehler beim Laden einer Textdatei

  Alt 16. Jul 2009, 16:29
Hallo gangs_taas,

entweder hab ich's übersehen oder es fehlt wirklich:
Delphi-Quellcode:
  Zwischenspeicher:=Tstringlist.create;
  Zwischenspeicher2:=Tstringlist.create;
Gruß
K-H

und alle sind schneller als ich!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.199 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Fehler beim Laden einer Textdatei

  Alt 16. Jul 2009, 16:32
[OT]Frisch geduscht - da hat keiner eine Chance [/OT]
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#7

Re: Fehler beim Laden einer Textdatei

  Alt 16. Jul 2009, 16:32
juhu jetzt kriege ich ne meldung 'zu wenig arbeitsspeicher' mit verweis auf eine funktion von der ich dachte das die funktioniert.
ich hab noch diesen teil

den hatte ich oben rausgelöscht weil ich dachte der ist unwichtig...


Delphi-Quellcode:
procedure TForm1.Datum_Wochen_Start_erstellen;
Var
  Year : Integer;
  Woche : Integer;
  Tag : Integer ;
  Datum : TDate;
  Monat : Word;
  Tage : Word;
  Jahr : Word ;
begin
  Year := StrToInt(Edit8.Text);
  Woche := StrToInt(Edit1.Text);
  Tag := 1;
  Datum := StartOfaWeek(Year,Woche,Tag);
  DecodeDate(Datum, Jahr, Monat, Tage);
  Edit2.Text := IntToStr(Tage);
  Edit3.Text := IntToStr(Monat);
  Edit4.Text := IntToStr(Jahr);
end;
und da ist zu wenig arbietsspeicher für da ?!
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Fehler beim Laden einer Textdatei

  Alt 16. Jul 2009, 16:56
Ähm,

zu wenig arbeitsspeicher?
Delphi-Quellcode:
  Year := StrToInt(Edit8.Text);
  Woche := StrToInt(Edit1.Text);
Da solltest Du mal prüfen ob auch zulässige Werte übergeben werden.
Aber zuwenig Arbeitsspeicher? mysteriös!

Gruß
K-H
  Mit Zitat antworten Zitat
gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#9

Re: Fehler beim Laden einer Textdatei

  Alt 16. Jul 2009, 17:01
es sind richtige werte drin, da ich die ja vorher von heute hab einfügen lassen.

also es ist ja ein kalender (ist es xD ) und am anfang wird von der kalenderwoche das anfangs dateum ermittelt und da eingetragen und später soll man halt einfach ein datum eingeben und in der richtigen woche landen können ...
  Mit Zitat antworten Zitat
gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#10

Re: Fehler beim Laden einer Textdatei

  Alt 16. Jul 2009, 17:06
hey
ich weiß nicht ob es euch/mir hilft aber ich habe sowohl

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
Var
  KWoche : integer;
begin
  KWoche := WeekOfTheYear(Now);
  Edit1.TExt:= IntToStr(KWoche);
  Zwischenspeicher := TStringList.Create;
  if(KWoche > 0) Then begin
    Textdatei := woche+IntToStr(KWoche)+ext;
    Textdatei2 := woche+(IntToStr(KWoche +1))+ext;
    InDieMemoFelderSchreiben(Textdatei, Textdatei2); //hier eine Breakpoint
    Datum_Wochen_Start_erstellen ; //und hier einen Breakpoint
  end;
end;

und den breakpoint bei Indiememo.... löst noch nicht den fehler aus und in der nächsten zeile wird der fehler erst ausgelöst, nachdem ich hier :

    Datum_Wochen_Start_erstellen ; //und hier einen Breakpoint
auf F9 drücke. Meine breakpoints hier :
Delphi-Quellcode:
procedure TForm1.Datum_Wochen_Start_erstellen;
Var
  Year : Integer;
  Woche : Integer;
  Tag : Integer ;
  Datum : TDate;
  Monat : Word;
  Tage : Word;
  Jahr : Word ;
begin
  Year := StrToInt(Edit8.Text); // hier ist nen brakpoint
  Woche := StrToInt(Edit1.Text); // und hier
  Tag := 1;
  Datum := StartOfaWeek(Year,Woche,Tag);
  DecodeDate(Datum, Jahr, Monat, Tage);
  Edit2.Text := IntToStr(Tage);
  Edit3.Text := IntToStr(Monat);
  Edit4.Text := IntToStr(Jahr);
end;
kommen aber erst NACH dem fehler ...

wie kann das sein ?!
  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:41 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