AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Übergabestring bearbeiten.

Ein Thema von DRPEnc · begonnen am 13. Mai 2004 · letzter Beitrag vom 16. Mai 2004
Antwort Antwort
DRPEnc

Registriert seit: 20. Feb 2004
Ort: Noch unterm Mond
126 Beiträge
 
#1

Übergabestring bearbeiten.

  Alt 13. Mai 2004, 08:38
Ich hab ein kleines Problem mit einem Datenbankprogramm.
Dieses Programm kann ich leider nicht modifizieren. Somit müsste ich
ein kleines Tool coden.

Das Datenbankprogramm nimmt den Explorer aus Windows her. Somit gibt es auch
den Befehl "Sendto" (im rechten-Maustaste-Menu).

Wenn ich nun eine Datei z.B. an Wordpad senden will kommt eine Fehlermeldung.
Diese ist auch total logisch, weil das Programm aus dem ich den Sendto Befehl
ausführe an die Datei noch einen Anhang mitschickt.

Das Ganze sieht dann so aus (Ich vereinfache den String in diesem Beispiel.):

E:\Ordner\Unterverzeichnis\Datei.Endung@@\Programm ordner\Versionsinformation\4

Somit kommt dann die Errormeldung: Kann 4 nicht öffnen.

Die Lösung währe nun folgendes:

Ich bräuchte ein kleines Tool welches den Übergabestring aus Sendto übernimmt und
die Information hinter dem ersten @ einfach abschneidet und dann den Rest
an das andere Programm weiter gibt. Sollte dann so aussehen:

E:\Ordner\Unterverzeichnis\Datei.Endung

Nun hänge ich aber noch am @-Zeichen und an dem Problem, wie ich den String aus dem
Sendto-Befehl in mein Programm bekomme.

Ich hatte mich gestern 2 Stunden in Netz gehängt und bin nich auf eine Lösung gestoßen.
Könnte mir einer von Euch Freaks hiermit helfen?.

Danke schon mal.
CU

DRPEnc
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: Übergabestring bearbeiten.

  Alt 13. Mai 2004, 09:13
Willst du den String bearbeiten, der an Wordpad geschickt wird oder den, der an dein Programm geschickt wird?

[edit]Verdammte Tastatur, und das 2 Mal [/edit]
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
DRPEnc

Registriert seit: 20. Feb 2004
Ort: Noch unterm Mond
126 Beiträge
 
#3

Re: Übergabestring bearbeiten.

  Alt 13. Mai 2004, 20:55
Wordpad war nur ein Beispiel, aber ja, es geht um den String, den ich zu meinem Programm schicke. Mein Programm soll sozusagen eine Brücke darstellen.

Sprich das Programm, welches die Datei erstellt hatte, hängt immer diesen Schmus nach den zwei @-Zeichen dran. Ergo muss mein Programm den Schmus inkl. den @-Zeichen killen und nur den String ohne dem Anhang weitergeben. Sonst kann das Folgeprogramm die Datei nicht öffnen.
CU

DRPEnc
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#4

Re: Übergabestring bearbeiten.

  Alt 13. Mai 2004, 21:01
naja, wenn du weisst wie der ordner heisst könntest du es so machen:
Delphi-Quellcode:
procedure uebergabe(uebergabestring:string);
const
pfad='meinProg';
var
x:integer;
begin
x:=find(pfad,uebergabestring);
trim(uebergabestring8,x);
end;
ich weiss nit, obs genau so geht

find muss den index des ersten buchstaben des gesuchten strings im grossen string zurückgeben
trim muss in einem string alles nach einem bestimmten index abschneiden

trim gibts, aber obs genau das tut?
find musse gucken, welches find genau
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
DRPEnc

Registriert seit: 20. Feb 2004
Ort: Noch unterm Mond
126 Beiträge
 
#5

Re: Übergabestring bearbeiten.

  Alt 13. Mai 2004, 23:08
Hmm müsste ganz nah dran sein. Gibt es nicht irgendwo im Net ne Übersicht über alle Zeichen? Es müsste doch möglich sein alles ab dem ersten @ zu trimmen. Nur wie bestimme ich @?
CU

DRPEnc
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Übergabestring bearbeiten.

  Alt 13. Mai 2004, 23:18
Geh den String Zeichen für Zeichen in einer Schleife durch und vergleiche mit "@". Eine ASCII Tabelle wird sich im Internet schon finden lassen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Übergabestring bearbeiten.

  Alt 13. Mai 2004, 23:34
Delphi-Quellcode:

program SendToWordpad;

uses
 SysUtils,
 Windows,
 ShellApi;

function TrimAtDoubleAt(s: String): String;
var iPos: Integer;
begin
 Result := s;
 iPos := pos('@@', s);
 If iPos>0 then
  Result := copy(s, 1, iPos-1);
end;

begin
 ShellExecute(0, 'open', PChar( TrimAtDoubleAt( ParamStr(1) ) ), nil, nil, SW_SHOWNORMAL);
 //Bleibt zu hoffen, dass der komplette Paramter in Anführungszeichen übergeben wird
end;
Dani H.
  Mit Zitat antworten Zitat
DRPEnc

Registriert seit: 20. Feb 2004
Ort: Noch unterm Mond
126 Beiträge
 
#8

Re: Übergabestring bearbeiten.

  Alt 16. Mai 2004, 16:56
Dani kannst Du mir sagen welche Projectart du für deinen Code benutzt hast

Es hängt nun nur noch am string. Ich habs mal in eine Oberfläche eingebaut um zu sehen ob der Code funzt.
Hier mal der Code von mir:

Delphi-Quellcode:
unit main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ShellApi, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    Edit1: TEdit;
    Edit2: TEdit;
    GroupBox1: TGroupBox;
    ComboBox1: TComboBox;
    Edit3: TEdit;
    procedure Button1Click(Sender: TObject);


  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
function TrimAtDoubleAt(s: String): String;
var iPos: Integer;
begin
Result := s;
iPos := pos('@@', s);
If iPos>0 then
  Result := copy(s, 1, iPos-1);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin

if not OpenDialog1.execute then exit;
Edit1.text:=Opendialog1.filename;
Edit2.text:=TrimAtDoubleAt( Edit1.text );
if combobox1.itemindex=0 then Edit3.text:='notepad.exe';
if combobox1.itemindex=1 then Edit3.text:='wordpad.exe';
shellexecute (0, Nil, PChar(edit3.text), PChar(edit1.text), Nil, SW_NORMAL);
end;

end.
Nun müsste das Programm aber auch bei Sendto laufen, oder wenn ich eine Datei auf das Programm ziehe.
CU

DRPEnc
  Mit Zitat antworten Zitat
DRPEnc

Registriert seit: 20. Feb 2004
Ort: Noch unterm Mond
126 Beiträge
 
#9

Re: Übergabestring bearbeiten.

  Alt 16. Mai 2004, 17:17
Delphi-Quellcode:
program atkillcon;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  Windows,
  ShellApi;

function TrimAtDoubleAt(s: String): String;
var iPos: Integer;
begin
Result := s;
iPos := pos('@@', s);
If iPos>0 then
  Result := copy(s, 1, iPos-1);
end;

begin
ShellExecute(0, 'open', PChar( TrimAtDoubleAt( ParamStr(1) ) ), nil, nil, SW_NORMAL);
//Bleibt zu hoffen, dass der komplette Paramter in Anführungszeichen übergeben wird

end.
So öffnet ers, findet es aber nicht ... hmm

Muss nur noch simulieren ...
CU

DRPEnc
  Mit Zitat antworten Zitat
DRPEnc

Registriert seit: 20. Feb 2004
Ort: Noch unterm Mond
126 Beiträge
 
#10

Re: Übergabestring bearbeiten.

  Alt 16. Mai 2004, 17:28
Danke Dani. Dein Code funzt. Ich habs simuliert.
CU

DRPEnc
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:17 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