AGB  ·  Datenschutz  ·  Impressum  







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

AnsiPos Hilfe

Ein Thema von Linguini · begonnen am 6. Jun 2009 · letzter Beitrag vom 6. Jun 2009
Antwort Antwort
Seite 1 von 2  1 2      
Linguini

Registriert seit: 19. Mai 2009
95 Beiträge
 
#1

AnsiPos Hilfe

  Alt 6. Jun 2009, 14:47
Hallo,

Delphi-Quellcode:
inhalt:=File2String(application.ExeName);
posi:=ansipos('Beispiel',inhalt);
if posi>0 then
showmessage('gefunden');
Ich lese die Datei als String ein, und suche dann nach "Beispiel".
Aber da ich ja nach "Beispiel" suche, ist "Beispiel" ja immer in diesem String, gibt es eine Möglichkeit das 1. Ergebnis von AnsiPos zu ignorieren oder so?

Grüße
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: AnsiPos Hilfe

  Alt 6. Jun 2009, 14:52
Versuch es mal mit PosEx()
Markus Kinzler
  Mit Zitat antworten Zitat
Fridolin Walther

Registriert seit: 11. Mai 2008
Ort: Kühlungsborn
446 Beiträge
 
Delphi 2009 Professional
 
#3

Re: AnsiPos Hilfe

  Alt 6. Jun 2009, 15:02
Zitat von Linguini:
Ich lese die Datei als String ein, und suche dann nach "Beispiel".
Seriously ... woher kommen die Leute in letzter Zeit, die alle Binärdaten in einen String einlesen?

Zitat von Linguini:
Aber da ich ja nach "Beispiel" suche, ist "Beispiel" ja immer in diesem String, gibt es eine Möglichkeit das 1. Ergebnis von AnsiPos zu ignorieren oder so?
Viel eleganter wäre es doch, wenn "Beispiel" in der Anwendung nicht zu finden wäre. Weil der Suchstring in der Form nicht vorkommt. Weiß jetzt nicht wie gut die Optimierung ist von Delphi, aber man könnte z.B. nach 'Beis' + 'piel' suchen statt 'Beispiel'. Oder eine kleine Funktion bauen die aus bEISPIEL Beispiel macht usw. usf..
Fridolin Walther
  Mit Zitat antworten Zitat
Linguini

Registriert seit: 19. Mai 2009
95 Beiträge
 
#4

Re: AnsiPos Hilfe

  Alt 6. Jun 2009, 15:17
Danke mit PosEx klappt es wunderbar =)
  Mit Zitat antworten Zitat
Linguini

Registriert seit: 19. Mai 2009
95 Beiträge
 
#5

Re: AnsiPos Hilfe

  Alt 6. Jun 2009, 16:23
Bzw. es klappt doch nicht so toll:

Dieses Programm:
Delphi-Quellcode:
AssignFile(f,'modme.exe');


Append(f);
Write(f,'beispiel');
 CloseFile(f);
 ShowMessage('done');
Hängt den String "beispiel" an das Ende des unteren Programmes an. Wenn ich es mit einem Hexeditor öffne, sehe ich den String dort auch.

Dieses Programm soll nun den angehängten String auslesen.

Delphi-Quellcode:

function File2String2(const FileName: string): string;
var
 Stream: THandle; Size,Bytes:Cardinal;
begin
 if length(FileName) = 0 then exit;
 Stream := CreateFile(pchar(FileName), GENERIC_READ,0, nil,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
 if Stream <> INVALID_HANDLE_VALUE then
  begin
    Size := GetFileSize(Stream,nil); SetLength(Result,Size);
    ReadFile(Stream,pchar(Result)^,Size,Bytes,nil);
    CloseHandle(Stream);
  end;
end;




procedure TForm1.FormCreate(Sender: TObject);


var
x,y :Integer;
inhalt:String;

begin

inhalt:=File2String(Application.ExeName);

x:=ansipos('beispiel',inhalt);
  showmessage(inttostr(x));
y:=posex('beispiel',inhalt,x+1);
  showmessage(inttostr(y));

end;
Wenn ich richtig denke müsste ja der String "beispiel" im obigen Programm mindestens 2x enthalten sein.
Einmal daher weil ich nach im Suche, und ein zweites mal weil ich ihn ja angehängt habe.

So Ansipos findet auch den String, aber PosEx leider nichtmehr...
Woran könnte das liegen?
Bzw. wie kann ich den angehängten String noch auslesen?
Filestream?

Danke
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

Re: AnsiPos Hilfe

  Alt 6. Jun 2009, 16:39
Zitat:
function File2String2(const FileName: string): string;
Na dass wird was werden, wenn du das unter Delphi 2009 (Unicode) so machst. (String=UnicodeString=2 Byte pro Zeichen <> AnsiString=1 Byte pro Zeichen).
Strings sind keine "Array of Byte". Sondern Strings. Und wenn man sie missbraucht, dann rächt sich das irgendwann, insbesondere wenn sie konvertiert werden, was der Compiler über Compiler Magic macht, und man es somit nicht mitbekommt.
  Mit Zitat antworten Zitat
Linguini

Registriert seit: 19. Mai 2009
95 Beiträge
 
#7

Re: AnsiPos Hilfe

  Alt 6. Jun 2009, 17:08
Naja, das ist bisher der einzige Weg der zumindest zu 50% funktioniert...

Wie könnte ich mein vorhaben den sonst realisieren?
Ich probier da schon so lang rum, langsam verliere ich die Lust.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: AnsiPos Hilfe

  Alt 6. Jun 2009, 17:13
Was willst du den mit der Abfrage bewirken?
Markus Kinzler
  Mit Zitat antworten Zitat
Linguini

Registriert seit: 19. Mai 2009
95 Beiträge
 
#9

Re: AnsiPos Hilfe

  Alt 6. Jun 2009, 17:20
Ich will einfach nur den angehängten String auslesen.
Ich hätte einfach vor den Daten einen Art Hinweisstring wie MYDATA hinterlassen, den dann gesucht und alles aus dem String geschnitten bis MYDATAEND.
Nur leider klappt das auslesen nicht^^

Insgesamt will ich einfach nur Daten in einer exe speichern, die sie selbst später wieder auslesen kann.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: AnsiPos Hilfe

  Alt 6. Jun 2009, 17:23
Warum schreibst du diese dann nicht in eine (Text-)Ressource?
Markus Kinzler
  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 03:05 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