Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Inhalt der pref.js Dateien ändern (https://www.delphipraxis.net/4313-inhalt-der-pref-javascript-dateien-aendern.html)

eleonora 24. Apr 2003 07:29


Inhalt der pref.js Dateien ändern
 
Hallo!

Ich würde gerne einen bestimmten Eintrag in einer pref.js (bei Netscape) Datei, die ich mit einem Texteditor öffne, mit Delphi ändern!

Beispiel: Autocomplete von true auf false ändern!

Gibt es eine Möglichkeit oder einen Code, mit dem ich diese Einträge ändern kann?

Danke schon mal im voraus!

Gruss Eleonora

Stanlay Hanks 24. Apr 2003 08:18

Hallo. Da ich keine Ahnung habe, wie so eine Datei aufgebaut ist, würde ich sagen, du lädst die date, suchst mit pos() die Position des Eintrags
Autocomplete gehst von dieser Position 12 Zeichen (Die länge des Wortes autocomplete)weiter und ersetzt dann false durch true. So würd ich das machen aber: 1) Da ich es noch nie versucht habe, kann ich nicht
garantieren, dass es funzt.
2) Hat bestimmt irgendwer ne schönere Lösung anzubieten.

Man liest sich. Stanlay :spin:

MrSpock 24. Apr 2003 09:07

Hallo eleonora,

da es sich bei .js (JavaScript) Dateien um Textdateien handelt, kannst du sie wie andere Textdateien bearbeiten. Du kannst sie z.B. in ein Memo laden, dort bearbeiten (zeilenweise durchlaufen und z.B. mit Pos den zu änderenden String suchen und ersetzen) und wieder abspeichern.

eleonora 24. Apr 2003 12:55

@MrSpock

Kannst Du mir mal einen kleinen Tip zu Pos geben, denn ich habe damit noch gar nicht gearbeitet und das was ich im Formum finde bringt mich irgendwie nur noch mehr durcheinander! Aber ich werde es solange trotzdem weiter versuchen!

Danke!

eleonora

MrSpock 24. Apr 2003 13:03

Hallo eleonora,

wenn du die Textdatei in ein Memo geladen hast:

Delphi-Quellcode:
var
  posi : Integer;
...
for i:= 0 to memo.lines.count-1 do
begin
  { suchStr enthalte den zu suchenden String }
  posi := Pos(suchStr, memo.lines.Strings[i]);
  { posi zeigt nach dieser Anweisung auf das erste Vorkommen
    des suchStr in der durchsuchten Zeile, oder hat den Wert 0 }
  if posi > 0 then
  begin
    { in memo.lines.Strings[i] steht ab der Position posi der
      zu suchende String }
    { Wert des Strings ändern }
  end
end;

MathiasSimmack 24. Apr 2003 13:15

Liste der Anhänge anzeigen (Anzahl: 1)
Ich hatte damals das selbe Problem. Die Version 0.9x des Mozilla besaß zwar schon den Popup-Blocker, hatte in den Einstellungen aber noch keine Option dafür. Ergebnis war mozillum: ein Mini-Tool, das den notwendigen Eintrag selbst in die "prefs.js" geschrieben hat.

Wenn´s dich interessiert, kannst du den Programmcode als Basis nutzen, @eleonora. Das Prinzip ist in deinem Fall ähnlich. Hab´s mal rausgesucht und angehangen.

eleonora 24. Apr 2003 14:16

Danke Euch beiden für Eure schnelle Hilfe! :)

Leider hab ich grad keine Zeit mir das alles genau anzuschauen! Drumm werdet ihr wahrscheinlich erst morgen eine Antwort von mir bekommen!

Sorry! :(

Gruss Eleonora :coder:

eleonora 25. Apr 2003 11:25

Hallo!

Ich habe mich jetzt erst mal mit dem Code von MrSpock auseinander gesetzt! Er funktioniert bei mir allerdings nicht! Vielleicht kann mir ja einer sagen warum?

Hier ist mal mein Code den ich eingefügt habe!

Code:
procedure Teraser_memo.Button1Click(Sender: TObject);
var
posi : integer;
i : integer;
s : string;
begin
     for i := 0 to Memo.Lines.count-1 do
     begin
     if OpenDailog.Execute
     then begin
          Memo.Lines.LoadFromFile(OpenDialog.FileName);
          posi := Pos('pref("browser.urlbar.autocomplete.enabled"),
          false','Memo.lines.strings[i]');
          ShowMessage(Memo.lines.strings[posi]);
     end;
end;
Wenn ich das Programm starte, dann lädt er mir die Datei zwar ins Memofeld. Nur hab ich das Problem, dass er mir die angegebene Position nicht ausgibt und anschliessend abstürzt.

@MatthiasSimmack: Für Deinen Code hatte ich noch keine Zeit um ihn mir genau anzuschauen. Allerdings bin ich in Mozilla auch noch nach was anderem auf der Suche und wollte Dich dazu mal was fragen! Darf ich Dir ne mail schicken, oder soll ich es hier rein posten? Allerdings hat es "nichts" mit Delphi zu tun!!!

Gruss Eleonora

MrSpock 25. Apr 2003 12:03

Hallo eleonora,

du hast ja auch das Öffnen der Datei mit in die Schleife gepackt. Count ist dann natürlich auch noch nicht korrekt.

Es muss so aussehen:

Delphi-Quellcode:
if OpenDailog.Execute then
begin
  Memo.Lines.LoadFromFile(OpenDialog.FileName);
  for i := 0 to Memo.Lines.count-1 do
  begin
     posi := Pos('pref("browser.urlbar.autocomplete.enabled"),
          false','Memo.lines.strings[i]');
     { show Message musss hier mit Index i und nicht mit posi aufgerufen werden"! }
     ShowMessage(Memo.lines.strings[i]);
  end;
end;

eleonora 25. Apr 2003 12:12

Hallo!

:oops: Die Schleife habe ich ausversehen falsch rüber kopiert. :oops:

Ich habe aber auch schon das posi durch das i ersetzt! Wenn ich das dann mache, dann geht er mir das ganze Memo Zeile für Zeile durch! Und wenn ich das richtig verstanden habe, dann soll er mir ja gleich diesen Eintrag raussuchen!?

Eleonora


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:11 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