Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Eine txt Datei mit links soll mit ShellExecute alle links öf (https://www.delphipraxis.net/44818-eine-txt-datei-mit-links-soll-mit-shellexecute-alle-links-oef.html)

MisterX 25. Apr 2005 12:23


Eine txt Datei mit links soll mit ShellExecute alle links öf
 
Ich will das alle links nach einander geöffnet werden

Mephistopheles 25. Apr 2005 12:29

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Dem Dativ sein Verhängnis war des Genitivs Freud.

Versuche doch doch bitte in produktiveren und verständlicheren Protestformen. Danke!

Will heißen: was willst du machen. Auch wenn es noch nicht in der "Verfassung" steht Forensprache, darüber scheint Konsens zu herrschen, ist Deutsch. Nicht Wasserpolnisch rückwärts und auch nicht Fachchinesisch senkrecht.

MisterX 25. Apr 2005 12:32

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Nun ja ich will ShellExecute in einem Timer einfügen un dann soll er fon der txt alle links öffnet die ich da eingebe

Waldteufel 25. Apr 2005 12:34

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Hi.

Wozu der Timer? :gruebel:

Ich schätze mal, dass die Datei, aus der du die Links ausliest, so aufgebaut ist:

Code:
[url]http://www.delphipraxis.de[/url]
[url]http://www.meinehomepage.de[/url]
[url]ftp://www.sonstwo.com[/url]
[url]gopher://www.abcdefg.xyz[/url]
So müsste es gehen:

Delphi-Quellcode:
procedure MachMal(dateiname : string);
var
  S : TStringList;
  i : integer;
begin
  S := TStringList.Create;
  S.LoadFromFile(dateiname);
  for i := 0 to S.Count - 1 do
  begin
    ShellExecute(Handle, PChar('open'), PChar('C:\Windows\Explorer.exe'), PChar(S.Items[i]), SW_SHOWNORMAL));
  end;
end;
mfg, Waldteufel

Ultimator 25. Apr 2005 12:35

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Entweder Delphi-Referenz durchsuchenTFileStream oder Delphi-Referenz durchsuchenAssignFile Delphi-Referenz durchsuchenReadLn.

MisterX 25. Apr 2005 12:38

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Timer damit er halt z.B jede min ein neun link aufmacht ^^

gmarts 25. Apr 2005 12:39

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Na dann nimm das:
Delphi-Quellcode:
ShellExecute(Handle, PChar('open'), PChar('C:\Windows\Explorer.exe'), PChar(S.Items[i]), SW_SHOWNORMAL));
aus der Schleife raus und packs in einen Timer!

Speziallösung für dich: mach ein Sleep(60000); in die Schleife.

Mephistopheles 25. Apr 2005 12:40

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
@Waldteufel: geht das nicht auch ohne die Angabe von Explorer. Denn theoretisch bestimmt sich doch über das Verb open, welche Anwendung mit http://... usw. verbunden ist. Bei dir würde immer der IE geöffnet, obwohl ich z.B. Opera benutze.

@MisterX: bspw. könnte der Timer dann jede Minute eine weitere Zeile mit ReadLn() aus der Datei auslesen, welche dann an ShellExecute übergeben wird. Das Prinzip entspricht dem vom Waldteufel. Nur eben in der OnTimer-Methode.

MisterX 25. Apr 2005 12:42

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Wozu steht bei ShellExecute ('C:\Windows\Explorer.exe') er macht das doch so auf wen es ein link ist oderrrrrrrrrrrrr????????


Delphi-Quellcode:
procedure MachMal(dateiname : string);
var
  S : TStringList;
  i : integer;
begin
  S := TStringList.Create;
  S.LoadFromFile(dateiname);
  for i := 0 to S.Count - 1 do
  begin
    ShellExecute(Handle, PChar('open'), PChar('C:\Windows\Explorer.exe'), PChar(S.Items[i]), SW_SHOWNORMAL));
  end;
end;

Waldteufel 25. Apr 2005 12:45

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Hi.

Hmmm... Bist du dir da sicher? Naja...

Dann so:

Delphi-Quellcode:
var
  link_num : integer;
  s : TStringList;

procedure TForm1.Timer1Timer(Sender : TObject);
begin
  ShellExecute(Handle, PChar('open'), PChar(S.Items[link_num]), PChar(''), SW_SHOWNORMAL));
  Inc(link_num);
  if link_num = S.Count then link_num := 0;
end;

procedure TForm1.Form1Create(Sender : TObject);
begin
  link_num := 0;
  S := TStringList.Create;
  S.LoadFromFile('wasweißichwo.txt');
end;

procedure TForm1.Form1Destroy(Sender : TObject);
begin
  S.Free;
end;
//edit : Ups... Ein Programmierfehler.. :oops:

MisterX 25. Apr 2005 12:48

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Delphi-Quellcode:
    ShellExecute(Handle, PChar('open'), PChar('C:\Windows\Explorer.exe'), PChar(S.Items[i]), SW_SHOWNORMAL));             ^
                              !
                              !
                              !
        \dort soll doch der name rein fon der txt und der link oderrr/

Mephistopheles 25. Apr 2005 12:50

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Zitat:

Zitat von Waldteufel
Hi.

Hmmm... Bist du dir da sicher? Naja...

Ziemlich.

Übrigens:
Delphi-Quellcode:
  ShellExecute(Handle, PChar('open'), PChar(S.Items[link_num]), PChar(''), SW_SHOWNORMAL));
besser so:

Delphi-Quellcode:
  ShellExecute(Handle, PChar('open'), PChar(S.Items[link_num]), nil, SW_SHOWNORMAL));
Noch besser wäre die Vermeidung der Typecasts, z.B.:
Delphi-Quellcode:
@S.Items[link_num][1]

flomei 25. Apr 2005 12:51

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Nein das müsste laut SDK schon so richtig sein... klick

MFG Florian :hi:

Mephistopheles 25. Apr 2005 12:54

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Zitat:

Zitat von flomei
Nein das müsste laut SDK schon so richtig sein... klick

So. Und jetzt nochmal mit Bezug zu den vorigen Antworten. Insbesondere mit Hinweis auf wen du dich beziehst.

bigg 25. Apr 2005 12:54

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
was heißt eigentlich fon? Ó.Ò

MisterX 25. Apr 2005 12:59

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Ich will das die txt immer im selben Ordner liegt und wollte wissen ob es wie bei html geht z.B.
egal wohin ich das prog hin tue (mit der txt) sol es gehen

flomei 25. Apr 2005 13:01

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Zitat:

Zitat von Mephistopheles
Zitat:

Zitat von flomei
Nein das müsste laut SDK schon so richtig sein... klick

So. Und jetzt nochmal mit Bezug zu den vorigen Antworten. Insbesondere mit Hinweis auf wen du dich beziehst.

Das war den Beitrag mit dem "müsste das und das nicht hier stehen" bezogen...
Du bist da leider irgendwie zwischen gesprungen...

MFG Florian :hi:

Waldteufel 25. Apr 2005 13:03

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Hi.

Zitat:

Zitat von MisterX
Delphi-Quellcode:
    ShellExecute(Handle, PChar('open'), PChar('C:\Windows\Explorer.exe'), PChar(S.Items[i]), SW_SHOWNORMAL));                 ^
                                  !
                                  !
                                  !
        \dort soll doch der name rein fon der txt und der link oderrr/


Delphi-Quellcode:
ShellExecute(Handle, PChar('open'), PChar(S.Items[link_num]), PChar(''), SW_SHOWNORMAL));
//                                      ^- Das ist der Link
Die gesamte Textdatei steht in der StringList S. ;-)

mfg, Waldteufel

Chris1986 25. Apr 2005 13:06

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Zitat:

Zitat von MisterX
Delphi-Quellcode:
    ShellExecute(Handle, PChar('open'), PChar('C:\Windows\Explorer.exe'), PChar(S.Items[i]), SW_SHOWNORMAL));             ^
                              !
                              !
                              !
        \dort soll doch der name rein fon der txt und der link oderrr/

Ich krieg gleich das kalte Kotzen. Kannst du dir bitte angewöhnen von mit V zu schreiben?
So, jetzt zu deinem Problem:
Der Vorschlag von Waldteufel ist richtig. Warum sollte in die Procedure ShellExecute der Name der Text-Datei? Wenn du dir den Code von Waldteufel nur mal 5Sec ansehen würdest, würdest du sehen wie es funktioniert.

Hier extra für dich mal der Ablauf:
1.) Einer Variable (in diesem Fall heißt sie "s") vom Typ TSringlist wird Speicherplatz zugewiesen
2.) Der Inhalt der Textdatei wird mit Hilfe von s.Loadfromfile('hier muss der Pfad zur Textdatei stehen') in die Variable "s" geladen.
3.) Die Variable Link_Num ist eine "Zählvariable". Da noch keine Links ausgelesen wurden, wird sie auf 0 gesetzt.
4.) Der Timer geht Zeile für Zeile durch die Stringlist (die Variable s) und greift mit s[Link_Num] jeweils auf die Zeile mit der Nummer zu, die in der Variablen Link_Num steht. Das geschieht bereits alles in der Übergabe an Shellexecute.
5.) Link_Num wird um 1 erhöht (inc), damit beim nächsten Timer-Intervall die nächste Zeile ausgelesen wird.
6.) Ist Link_num >= die Anzahl der vorhandenen Zeilen in "s" wird Link_Num auf 0 gesetzt und das Spiel beginnt von vorn.
7.) Wenn das Programm beendet wird, wird der Speicher, den die Stringlist beansprucht hat, wieder freigegeben.

Ich hoffe, ich konnte dir einige Grundregeln von Object-Pascal und Delphi näher bringen. Falls dir etwas immer noch unklar ist, kannst du ja fragen. Aber lies bitte vorher und nachher alle Antworten gründlich durch, damit du präzise und eindeutige Fragen stellen kannst.

MfG
Christian

ste_ett 25. Apr 2005 13:08

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Zitat:

Zitat von bigg
was heißt eigentlich fon? Ó.Ò

Wahrscheinlich von :)

Zitat:

\dort soll doch der name rein fon der txt und der link oderrr/

MisterNiceGuy 25. Apr 2005 13:37

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Der komplette Quelltext steht doch schon da!! Füge ihn doch einfach mal in dein Projekt ein du Nase! :wall:

MisterX 25. Apr 2005 13:49

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Ich will das die txt immer im selben Ordner liegt und wollte wissen ob es wie bei html geht z.B.
egal wohin ich das prog hin tue (mit der txt) soll es gehen um nicht immer den lmmer den link endern zu müssen :hello:

Chris1986 25. Apr 2005 13:55

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Zitat:

Zitat von MisterX
Ich will das die txt immer im selben Ordner liegt und wollte wissen ob es wie bei html geht z.B.
egal wohin ich das prog hin tue (mit der txt) sol es gehen unm nich immer den lmmer den link endern :hello:

Was meinst du mit "Wie bei html?" Funktionierts denn bis jetzt?

Such in der DP und in der Delphi-Hilfe mal nach Hier im Forum suchenApplication.exename bzw. Hier im Forum suchenparamstr(0) und Hier im Forum suchenextractfilepath

PS: Auch wenn dein Kunde bestimmt dringend auf die Übergabe des Programms wartest könntest du doch deinen Beitrag gefälligst nochmal durchlesen, bevor du ihn abschickst. Oder is das zuviel verlangt?

Viel Erfolg
Christian

MisterX 25. Apr 2005 13:58

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
also ich meine normaler wesie mus man den lik eingebebn wo die datei liegt z.B. C\:llljlk
so aber bei html gibst ein befehl das es ohne lin geht hauptsache es ist immer dabei dan kanst du immer wieder irgendwochin tun und es wird immer gehen und ich wolte ob es auch sowas gibst

Tyrael Y. 25. Apr 2005 14:03

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
*Übersetzungstool einschalt*

Öy Alder, guckst du ParamStr() und ExtractFilePath()

krass gut ey


*Übersetzungstool ausschalt*

Chris1986 25. Apr 2005 14:04

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Wie gesagt, änder gefälligst deine Schreibweise und schau dir die Suchbegriffe an, die ich dir vorgeschlagen hab. Da findest du garantiert alles, was du brauchst.

MisterX 25. Apr 2005 14:05

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
ja ja ja ich weiss ich mache fehler ok was kann ich dafür und sag was du damit meinst
Öy Alder, guckst du ParamStr() und ExtractFilePath() was gibst da

sakura 25. Apr 2005 14:06

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
MisterX Ich bitte Dich jetzt endlich mal in vernünftigen, lesbaren und zusammenhängbaren Sätzen zu schreiben.

Deine Art mit anderen hier umzugehen grenzt an Gewalt!

Solltest Du Dich dazu nicht in der Lage sehen, dann melde Dich bitte aus der Delphi-PRAXiS ab.

An alle anderen: lasst Euch bitte nicht auf dieses Niveau herab :!: :roll:


Danke,
...:cat:...

P.S.: Wenn das hier so weitergeht, dann geht der Thread auch zu,

Waldteufel 25. Apr 2005 14:07

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Hi.

Zitat:

Zitat von MisterX
ja ja ja ich weiss ich mache fehler ok was kann ich dafür und sag was du damit meinst
Öy Alder, guckst du ParamStr() und ExtractFilePath() was gibst da

Guck doch mal in die Delphi-Hilfe... ;-)

alcaeus 25. Apr 2005 14:08

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Das heisst, dass du entweder in der Delphi-Referenz durchsuchenOnline-Hilfe oder ueber die DP-Suche Informationen ueber die Befehle ParamStr und ExtractFilePath ansehn sollst. Damit kannst du den Pfad der Anwendung rausholen, dann haengst du den Dateinamen der Datei an, und fertig. Ich denke du meinst die Moeglichkeit in HTML, Links relativ zum aktuellen Pfad anzugeben. Diese Funktionalitaet musst du dir mit den erwaehnten Befehl nachbauen.

Greetz
alcaeus

MisterNiceGuy 25. Apr 2005 14:08

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
@MisterX: Ich bin sicher wenn du weiterhin dein Pseudodeutsch verwendest werden deine Beiträge ignoriert...

Tyrael Y. 25. Apr 2005 14:11

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Ah guck mal einer schau, es kann deutsch :mrgreen:

ParamStr() ist eine Funktion, die dir die Parameter die einem Programm übergeben worden sind zurückliefert

- z.B
Delphi-Quellcode:
ParamStr(0)
gibt dir an, welche Datei ausgeführ worden ist um dien Program zu starten zum Beispiel D:\MeinOrdner\DasProgramm.exe

Delphi-Quellcode:
ExtractFilePath()
gibt dir zu einem Programmpfad wie D:\MeinOrdner\DasProgramm.exe den dazugehöriegn Ordner wieder in diesem Fall D:\MeinOrdner


mfg


P.S.: Rechtschreibung und Formulierung sind dir also doch nicht so fremd, also bitte auch in Zukunft daran halten

MisterX 25. Apr 2005 14:14

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Versuche ich ^^ :dance:

glkgereon 25. Apr 2005 14:22

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
abgesehen davon, das das imho spam ist, und du nicht der bist, der andere für einen tippfehler anmeckern sollte,
hast du es denn jetzt hinbekommen?

Chris1986 25. Apr 2005 14:23

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Zitat:

Zitat von alcaeus
Ich denke du meinst die Moeglichkeit in HTML, Links relativ zum aktuellen Pfad anzugeben. Diese Funktionalitaet musst du dir mit den erwaehnten Befehl nachbauen.

Hi alcaeus.
Bist du dir sicher, dass das mit Delphi nicht geht? Ich habs noch nicht ausprobiert. Aber bei CGI-Scripten, die man mit Kylix erstellt, funktioniert z.B. folgendes:
Delphi-Quellcode:
Stringlist.LoadfromFile('./einUnterordner/nocheinUnterordner/meineTextdatei.txt');
MfG
Christian

alcaeus 25. Apr 2005 14:24

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Hallo Chris,

Zitat:

Zitat von Chris1986
Bist du dir sicher, dass das mit Delphi nicht geht? Ich habs noch nicht ausprobiert. Aber bei CGI-Scripten, die man mit Kylix erstellt, funktioniert z.B. folgendes:

Falls der Ausfuehrungspfad in einer Verknuepfung geaendert wird, passt das Verzeichnis nicht mehr, ebenso wenn mit einem OpenDialog das Verzeichnis verstellt wird. Wenn man hingegen mit ExtractFilePath und ParamStr(0) bzw. Application.ExeFileName arbeitet, ist das Verzeichnis auf jeden Fall richtig ;)

Greetz
alcaeus

MisterX 25. Apr 2005 14:25

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Ja nur wie gesagt es sol überall funktionieren weil ich es meinen freuenden schicken werde und ich sage ihnen doch nicht wo sie das rein kopieren sollen

alcaeus 25. Apr 2005 14:27

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Hallo MisterX,

Zitat:

Zitat von MisterX
Ja nur wie gesagt es sol überall funktionieren weil ich es meinen freuenden schicken werde und ich sage ihnen doch nicht wo sie das rein kopieren sollen

wie gesagt, verwende den Tipp den wir dir empfohlen haben. Nun mal ein konkretes Beispiel:
Delphi-Quellcode:
AssignFile(<var>, IncludeTrailingPathDelimiter(ExtractFileName(ParamStr(0)))+'deinedatei.txt');
Das ist nur ein Beispiel. Wenn du mit einer StringList oder einem Memo arbeitest, musst du natuerlich nur noch den 2. Parameter uebernehmen, das ist der Teil der dir den richtigen Pfad zur Datei "zusammenstellt".

Greetz
alcaeus

MisterX 25. Apr 2005 14:31

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Ok ich versuche es zu hause bin bei der Arbeit ^^ danke für alles

sakura 25. Apr 2005 14:31

Re: Eine txt Datei mit links soll mit ShellExecute alle link
 
Zurück zum Thema :roll:

Doppelposts melden, nicht selbst hier posten :wall:

...:cat:...

P.S.: Ich habe hier mal aufgeräumt, wenn noch mehr OT kommt, dann wird derjenige ermahnt und im Zweifel dicht gemacht :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:50 Uhr.
Seite 1 von 2  1 2      

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