AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi fehler bei delete, seltsame compilermeldung
Thema durchsuchen
Ansicht
Themen-Optionen

fehler bei delete, seltsame compilermeldung

Ein Thema von Andreas L. · begonnen am 22. Mai 2006 · letzter Beitrag vom 22. Mai 2006
Antwort Antwort
Seite 1 von 2  1 2      
Andreas L.
(Gast)

n/a Beiträge
 
#1

fehler bei delete, seltsame compilermeldung

  Alt 22. Mai 2006, 13:53
Hi,
ich habe mir folgende Funktion gebastelt:
Delphi-Quellcode:
function IEListAllCookieNames:TStrings;
var
 temp: TStrings;
 i: integer;
begin
 FindAllFiles(temp, IECookiePath, '*.txt', true);
 for i:=0 to temp.Count-1 do
  begin
   Delete(temp.strings[i],0 , pos(temp.strings[i],'@'));
  end;
 Result:=temp;
end;
FindAllFiles ist eine Dateisuch-Prozedur von Sakura/Luckie (http://www.delphipraxis.net/internal...t=findallfiles). IECookiePath ist eine Konstante und enthält eine Pfadangabe (Bsp.: C:\bla\dir\). In der Zeile mit Delete versuche ich alles was vor dem @ ( AT ) im Dateinamen steht zu entfernen. Jedoch meldet der Compiler mir genau in dieser Zeile folgende Fehlermeldung und der Cursor bleibt am Ende der Zeil stehen.

Code:
[Fehler] Unit1.pas(90): Konstantenobjekt kann nicht als Var-Parameter weitergegeben werden
Ich habe schon in der Delphi-Hilfe nach diesen Compiler-Fehler gesucht, da steht aber nur: Dies ist eine reservierte Compilermeldung!

Ich komm einfach nicht drauf. Weiß jemand wo der Fehler liegt? Wenn ich mir die Fehlermeldung so anschaue denke ich das es etwas mit der Konstante "IECookiePath" zu tun hat, weiß aber nicht warum...
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.761 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: fehler bei delete, seltsame compilermeldung

  Alt 22. Mai 2006, 13:57
nur mal so eine dumme Frage, fehlt da vielleicht noch ein

temp:= TStrings.create; ?

Oder liegt es daran:
Zitat:
Derive a class from TStrings to store and manipulate a list of strings. TStrings contains abstract methods and should not be directly instantiated.
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#3

Re: fehler bei delete, seltsame compilermeldung

  Alt 22. Mai 2006, 13:58
Zitat von Klaus01:
nur mal so eine dumme Frage, fehlt da vielleicht noch ein

temp:= TStrings.create; ?

Grüße
Klaus
Ja, hab ich vergessen. Ändert aber nix am Fehler... Trotzdem Danke

Zitat:
Derive a class from TStrings to store and manipulate a list of strings. TStrings contains abstract methods and should not be directly instantiated.
Was heißt das letzte Wort? Heißt das jetzt das ich TStrings nicht direkt zum verändern von Strings verwenden soll? Wie soll ich das den sonst machen?

EDIT: Och, ich nehm einfach eine StringList
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.761 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: fehler bei delete, seltsame compilermeldung

  Alt 22. Mai 2006, 14:01
Delphi-Quellcode:
function IEListAllCookieNames:TStrings;
var
  temp: String;
  i: integer;
begin
  FindAllFiles(temp, IECookiePath, '*.txt', true);
  for i:=0 to temp.Count-1 do
    begin
      Delete(temp.strings[i],0 , pos(temp.strings[i],'@'));
    end;
  Result:=temp;
end;
Vielleicht tut es ja so?

Wnn Du allerdings diese Funktion genommen hast -> http://www.delphipraxis.net/internal...=392510#392510
Dann mußt Du eine TStringList nehmen.

Grüße
Klaus

[edit] Ergänzung TStringList [/edit]
Klaus
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#5

Re: fehler bei delete, seltsame compilermeldung

  Alt 22. Mai 2006, 14:04
temp.strings[] ist eine Eigenschaft, die nicht als Variablenparameter an Delete übergeben werden kann. Du mußt entweder mit der Copy-Funktion arbeiten oder eine String-Hilfsvariable benutzen.

Die Stringliste solltest du über

temp := TStringList.Create; erzeugen.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#6

Re: fehler bei delete, seltsame compilermeldung

  Alt 22. Mai 2006, 14:05
Zitat von Klaus01:
Delphi-Quellcode:
function IEListAllCookieNames:TStrings;
var
  temp: String;
  i: integer;
begin
  FindAllFiles(temp, IECookiePath, '*.txt', true);
  for i:=0 to temp.Count-1 do
    begin
      Delete(temp.strings[i],0 , pos(temp.strings[i],'@'));
    end;
  Result:=temp;
end;
Vielleicht tut es ja so?

Wnn Du allerdings diese Funktion genommen hast -> http://www.delphipraxis.net/internal...=392510#392510
Dann mußt Du eine TStringList nehmen.

Grüße
Klaus

[edit] Ergänzung TStringList [/edit]
FindAllFiles will TStrings als ersten Parameter haben. Klappt also nicht. Außerdem kann ich ja nicht mehrere Strings in einen String schieben...
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#7

Re: fehler bei delete, seltsame compilermeldung

  Alt 22. Mai 2006, 14:08
Zitat von Hawkeye219:
..String-Hilfsvariable benutzen...
Und wie? Sorry, steh heute voll am Schlauch...
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#8

Re: fehler bei delete, seltsame compilermeldung

  Alt 22. Mai 2006, 14:14
Ok, 'ne Q&D-Lösung wäre

Delphi-Quellcode:
s := temp[i];
Delete(s, 1, pos('@', s));
temp[i] := s;
s einfach als String-Variable deklarieren.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#9

Re: fehler bei delete, seltsame compilermeldung

  Alt 22. Mai 2006, 16:08
Zitat von Hawkeye219:
Ok, 'ne Q&D-Lösung wäre

Delphi-Quellcode:
s := temp[i];
Delete(s, 1, pos('@', s));
temp[i] := s;
s einfach als String-Variable deklarieren.

Gruß Hawkeye
Hurra es compiliert... Leider bekomm ich beim Aufrufen der Funktion einen AbstactError. Hier mal der Aufruf plus Funktion:
Delphi-Quellcode:
function IEListAllCookieNames:TStrings;
var
 temp: TStrings;
 s: String;
 i: integer;
begin
 temp:=TStrings.Create;
 FindAllFiles(temp, IECookiePath, '*.txt', true);
 for i:=0 to temp.Count-1 do
  begin
   s:=temp.strings[i];
   Delete(s,0 , pos(temp.strings[i],'@'));
   temp.Strings[i]:=s;
  end;
 Result:=temp;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Listbox1.Clear;
 Listbox1.Items:=IEListAllCookieNames;
end;
EDIT: Der Cursor bleibt hinter den Funktionsaufruf stehen...
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: fehler bei delete, seltsame compilermeldung

  Alt 22. Mai 2006, 16:14
Du hast doch weiter oben schon gesehen, dass du TStrings nicht direkt instanziieren darfst.

Delphi-Quellcode:
var
  s: TStrings;
begin
  s := TStringList.Create;
  // ...
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 13: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