AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Frage zur Funktion Explode

Ein Thema von Cyberbob_at_tot · begonnen am 20. Jun 2004 · letzter Beitrag vom 2. Jul 2004
Antwort Antwort
Seite 1 von 2  1 2   
Cyberbob_at_tot

Registriert seit: 30. Apr 2003
Ort: Ahlen
270 Beiträge
 
Delphi 2006 Professional
 
#1

Frage zur Funktion Explode

  Alt 20. Jun 2004, 18:21
Hallo zusammen,
habe die Funktionen nutzen wollen um einen String aus einer TXT datei zu splitten,
so funktioniert es auch gut. Mein Problem ist dabei, wie kann ich das Result Array auserhalb der Funktion aufrufen? Wenn ich auserhalt Result[x] verwenden will, sagt er...
[Fehler] DVDUnit.pas(176): Undefinierter Bezeichner: 'result'

Wenn ich dann in der Funktion selber das Array in mein eigenes Array (Record Typ mit Array) übertragen will bricht er in der Runtime ab(Zugriffsverletzung bei...usw.)

DVD.Titel[1]:=Result[1];

So wollt ich das ergebnis der Funktion in mein array übertragen aber es geht nicht!
Weis nun auch leider nicht weiter, wie kann ich Result, öffentlich machen ? Die Deklaration der Funktion (Function explode(const Separator,S: string;Limit:Integer = 4):TStringDynArray steht vor Var.

Kann mir jemand helfen ? weis erlich nicht weiter! häng da einfach!

BIG THX

Cyberbob
-----------------------------------------------------------
The only winning move is not to play ! (Wargames)
-----------------------------------------------------------
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

Re: Frage zur Funktion Explode

  Alt 20. Jun 2004, 18:24
Hi!

Herzlich Willkommen in der DP.

Kannst du evtl. dein Problem etwas näher erläutern? Komme da nicht so ganz mit.
Und vor allem deinen Code von Explode und Aufruf etc. posten?

Danke.

Ciao fkerber
Frederic Kerber
  Mit Zitat antworten Zitat
Cyberbob_at_tot

Registriert seit: 30. Apr 2003
Ort: Ahlen
270 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Frage zur Funktion Explode

  Alt 20. Jun 2004, 18:30
Klar kann ich machen, befor ich es hier aber genau erkläre lad ich einfacher weise einfach den Queltest hoch! liegt als rar datei bei!

mir gehts dabei das ich Result der Funktion explode auserhalb abrufen kann, oder direkt in der Funktion in mein DVD Array speichern kann. Schau es dir einfach mal an!

Leider müßten wirda so machen, würde ja gerne die BDE von Delphi nutzen aber das wäre ja zu einfach!
Angehängte Dateien
Dateityp: rar dvd_datenbank.rar (12,4 KB, 9x aufgerufen)
-----------------------------------------------------------
The only winning move is not to play ! (Wargames)
-----------------------------------------------------------
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#4

Re: Frage zur Funktion Explode

  Alt 20. Jun 2004, 18:56
Hi!

Delphi-Quellcode:
Procedure TForm1.einlesen();
Var
zeile:String;
zwischenarray: TStringDynArray;
Begin
assignfile(db,dbfile);
reset(db);
While not eof(db) do
Begin
readln(db,Zeile);
zwischenarray:=explode(',',Zeile);
DVD.Titel[zaehler]:=zwischenarray[1];
zaehler:=zaehler+1;
//ausgabe(1);
end;
Es kommen aber noch andere Fehler und dein Code sieht für mich grausam aus, nicht persönlich nehmen, aber so viele ///////////// und keine Einrückungen etc.
Er kann irgendwie die "Datenbank" bei mir nicht laden.

Ciao fkerber
Frederic Kerber
  Mit Zitat antworten Zitat
Cyberbob_at_tot

Registriert seit: 30. Apr 2003
Ort: Ahlen
270 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Frage zur Funktion Explode

  Alt 20. Jun 2004, 19:02
bin ja auch noch nicht fertig. Zumindest das mit den // wird uns so begebracht, da wir fast alles komentieren müßten, finde ich auch scheiße aber was sols!

du musst den Pfad zu der TXT datei noch anpassen, dann müßte es gehen!
-----------------------------------------------------------
The only winning move is not to play ! (Wargames)
-----------------------------------------------------------
  Mit Zitat antworten Zitat
Cyberbob_at_tot

Registriert seit: 30. Apr 2003
Ort: Ahlen
270 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Frage zur Funktion Explode

  Alt 20. Jun 2004, 19:26
Habe den Quelltext mal umgeändert aber es kommt immer noch diese Fehlermeldung wenn er die Zeile...
DVD.Titel[zaehler]:=zwischenarray[1];
ausführen will!
Miniaturansicht angehängter Grafiken
fehler_155.jpg  
-----------------------------------------------------------
The only winning move is not to play ! (Wargames)
-----------------------------------------------------------
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Frage zur Funktion Explode

  Alt 20. Jun 2004, 19:41
poste mal bitte deinen aktuellen Code.
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#8

Re: Frage zur Funktion Explode

  Alt 20. Jun 2004, 19:44
Hi!

So sollte es gehen:

Delphi-Quellcode:
Procedure TForm1.einlesen();
Var
zeile:String;
zwischenarray: TStringDynarray;
Begin
assignfile(db,dbfile);
reset(db);
While not eof(db) do
Begin
setlength(DVD.titel, zaehler+2); <-- HIER
readln(db,Zeile);
setlength(zwischenarray, 4);
zwischenarray:=explode(',',Zeile);
showmessage(zwischenarray[1]);
DVD.Titel[zaehler]:=zwischenarray[1];
zaehler:=zaehler+1;
end;
///Arraygröße neu setzen/////////
setlength(DVD.Nummer,zaehler);
//setlength(DVD.Titel,zaehler);
setlength(DVD.FSK,zaehler);
setlength(DVD.zusatz,zaehler);


/////////////////////////////////
closefile(db);
Label1.Caption:='Datensatz : 0 - ' + inttostr(zaehler);
End;
/////////////////////////////////////////////////////////////
Frederic Kerber
  Mit Zitat antworten Zitat
Cyberbob_at_tot

Registriert seit: 30. Apr 2003
Ort: Ahlen
270 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Frage zur Funktion Explode

  Alt 20. Jun 2004, 19:53
Super so gehts, nur so gang habe ich das nicht verstanden, wieso muss ich beim Setzen der Größe des Arrays, den Zähler plus 2 nehmen ? das ich das Array in der Schleife vergrößern muss, habe ich voll übersehen.
Und wieso muss ich über das Zwischenarray gehen? kann ich es nicht einfach direkt schreiben ?
-----------------------------------------------------------
The only winning move is not to play ! (Wargames)
-----------------------------------------------------------
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#10

Re: Frage zur Funktion Explode

  Alt 20. Jun 2004, 20:01
Hi!

+2 war an sich falsch, +1 reicht.
Liegt daran, dass Zaehler vorher 0 ist und ein Array auf die Länge 0 zu setzen ist nicht wirklich effektiv

Wegen dem zwischenarray, also explode liefert sowas:

Code:
result[0]
result[1]
resulr[2]
result[3]
Und das für jede Zeile. Also weißt du das dem Zwischenarray zu, um so sozusagen an result[1] zu kommen.
Kann es leider nicht anders erklären.

Ciao fkerber
Frederic Kerber
  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 09:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf