Autor Beitrag
Sandra121289
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Do 08.03.07 22:42 
Hallo!
ich bin ziemlicher anfänger mit delphi, habe ca. seit einem halben jahr in der schule turbo pascal gehabt und seit ein paar wochen delphi. wir haben die aufgabe bekommen, einen vokabeltrainer mit verschiedenen funktionen zu machen. dazu haben wir eine text datei bekommen, in der englische vokabeln mit deutscher übersetzung mit komma und leerzeichen getrennt sind. (also z.b. "tree, Baum") ich wollte jetzt beides trennen, also die englischen vokabeln in eine txt und die deutschen in eine andere.
Dazu hatte ich die idee einfach dass komma und leerzeichen mit einem zeilenumbruch zu ersetzen, aber irgendetwas scheint nicht zu funktionieren..
hier ist mein quelltext für die procedure (Achso benutze borland delphi 7):

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TForm1.BitBtn1Click(Sender: TObject);
var i,c:integer;
begin
c:=listbox1.items.count-1;
for i:=0 to c do
begin
Delete(listbox1.items[i],pos(', ',listbox1.Items[i]),2);
insert(chr(13),listbox1.items[i],pos(',',listbox1.Items[i]));
end;

for i:=0 to c do
begin
listbox2.Items.Add(listbox1.Items[i*2]);
end;
listbox2.items.SaveToFile('vokeng.txt');
end;



bei mir kommt dann immer bei der delete und insert zeile: "Constant object cannot be passed as var parameter" es scheint sich dabei um die pos funktion zu handeln..
ich weiß, dass das ziemlich umständlich ist, aber irgendwie muss man das doch hinkriegen? oder gibt es einen weg, das ganze ohne transfer zu einer anderen liste zu machen?
bitte helft mir =(
danke im voraus

ich entschuldige mich im voraus, wenn ich das thema in das falsche unterforum gepackt hab, wusste nicht genau wo es hingehört xD

Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt
IngoD7
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: Do 08.03.07 22:53 
Mal unabhängig von möglichen anderen/weiteren Fehlern (ich habe jetzt nicht genauer hingeschaut).
Die Fehlermeldung kommt weil:

ausblenden Delphi-Quelltext
1:
Delete(listbox1.items[i],pos(', ',listbox1.Items[i]),2);					

Man kann die Items einer Listbox nicht direkt an die Prozedur Delete übergeben.

Sinngemäß muss es so laufen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
var
  temp: string;
...

  temp:=listbox1.items[i];
  Delete(temp,pos(', ',listbox1.Items[i]),2);
  listbox1.items[i]:=temp;