AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Fehlermeldung "Zu wenig Arbeitsspeicher"
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlermeldung "Zu wenig Arbeitsspeicher"

Ein Thema von DerAndereMicha · begonnen am 6. Aug 2008 · letzter Beitrag vom 7. Aug 2008
 
nahpets
(Gast)

n/a Beiträge
 
#26

Re: Fehlermeldung "Zu wenig Arbeitsspeicher"

  Alt 6. Aug 2008, 16:13
Hallo,
Zitat:
es gibt Clients, die so etwas verdauen können. In diesem Fall handelst Du Dir durch das löschen der Zeilenkommentare '--' eine Menge Ärger ein, weil dann nur noch "Select Daten" übrig bleibt.
Reihenfolge ändern, erst /* bis */ und dann im Rest noch --

Vorschlag für die Kommentare mit /* */

von hinten nach vorne durch die Liste laufen und wenn ein */ gefunden wurde in der Zeile alles bis einschließlich */ löschen,
dann bis nach vorne weiter alle Zeilen löschen, in denen kein /* vorkommt bis zu der Zeile in der /* vorkommt und in der Zeile alles ab dem /* löschen.

Auch sowas ist möglich:

SQL-Code:
Select
Daten /* ab hier jetzt auswählen
-- ,daten1
-- ,daten2
-- ,daten3
-- Bitte das Datumsformat beachten !! */
 from .......
Stelle mir das in etwa so vor (nicht getestet!!!)
Delphi-Quellcode:
bKom := false;
for i := SQLLines.Count-1 downto 0 do begin
  iPosEnde := Pos('*/',SQLLines[i]);
  if iPosEnde > 0 then begin
    s := Copy(SQLLines[i],1,iPosEnde - 1);
    SQLLines[i] := s;
    bKom := True;
  end else begin
    iPosAnfang := Pos('/*',SQLLines[i]);
    if iPosAnfang > 0 then begin
      s := Copy(SQLLines[i],iPosAnfang - 1, length(SQLLines[i]) - iPosAnfang);
      SQLLines[i] := s;
      bKom := False;
    end;
  end;
  if bKom then SQLLines.Delete(i);
end;
for i := SQLLines.Count-1 downto 0 do begin
  bKom := Copy(Trim(SQLLines[i]),1,2) = '--';
  If bKom Then SQLLines.Delete(i)
end;
Du sparst dadurch viele pos auf die ganze Stringliste. Pos ist immer nur für eine Zeile erforderlich, Du brauchst halt zusätzlich einen Schalter zum merken, ob Du in einem Kommentar bist oder nicht.

Stephan

PS.: Dein Speicherproblem muss aber nicht hier liegen, mag sein, das viel Speicher gebraucht wird. Versuche trotzdem heraus´zufinden, was auf dem Rechner zum Zeitpunkt des Fehlers sonst noch so alles unterwegs ist, eventuell läuft ja zuweilen parallel noch ein anderer "Speicherfresser". Im Zweifelsfalle versuche in einem Try-Except-Block herauszubekommen, wie groß die Stringliste ist, wieviel Speicher Dein Programm braucht und wieviel Speicher andere Programme brauchen.
  Mit Zitat antworten Zitat
 


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 16:07 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