AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Vergleichen von .txt's / Benutzen von "Markern" ...
Thema durchsuchen
Ansicht
Themen-Optionen

Vergleichen von .txt's / Benutzen von "Markern" ...

Ein Thema von Shizo · begonnen am 8. Mär 2006 · letzter Beitrag vom 9. Mär 2006
Antwort Antwort
Shizo

Registriert seit: 8. Mär 2006
2 Beiträge
 
#1

Vergleichen von .txt's / Benutzen von "Markern" ..

  Alt 8. Mär 2006, 22:45
Moin zusammen =)

Ich habe vor vorhandene .txt's mit "neuen" zu vergleichen.
Bestimmte Werte sollen hierbei überprüft und geändert / hinzugefügt werden.
Vielleicht habt ihr ja ein paar Anregungen für mich ?

Die .txt's haben folgenden Aufbau:

Original
---------------------------------

[Nr: 1024] name=Example
Wert1_Beispiel= 512
Wert2_Beispiel= 256

[Nr: 2048] name=McDonalds
Wert1_McDonalds= 768
Wert2_McDonalds= 512
...

Neue .txt
----------------------------------

[Nr: 1024] name=Beispiel
Wert1_Beispiel= 512
Wert2_Beispiel= 256

[Nr: 2000] name=Neu
Wert1_Neu= 768
Wert2_Neu= 512

[Nr: 2048] name=McDoof
Wert1_McDonalds= 768
Wert2_McDonalds= 512
...
----------------------------------

Die original .txt soll erhalten bleiben, es sollen lediglich die rot markierten Inhalte aus
der neuen .txt in die neue geschrieben werden. (auch die Nr.2000 die noch NICHT vorhanden ist)
Es soll also eine Abfrage geben ob die Nummer in der original .txt schon vorhanden ist.
Wenn ja, wird nur der Name hinter dem Marker "=" ersetzt, wenn nein werden die kompletten
Werte (blau markierten zeilen) bis zu dem Marker "leerzeile" in die original txt geschrieben.

Die Namen in der original .txt sind englisch und werden somit ins deutsche übersetzt.
Und Objekte die noch nicht im original vorhanden sind werden nun reingeschrieben.

So in etwa ist die vorstellung die ich da hab.
Nur fehlen mir leider spezifische Kenntnisse zu den benötigten Abfragen und Funktionen.
Wär nett wenn jmd von euch mir ein paar Tipps geben könnte

(PS: es sind tausende zeilen ^^)

Thx und tausend Dank im Vorraus
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Vergleichen von .txt's / Benutzen von "Markern"

  Alt 8. Mär 2006, 23:33
Per Pos kannst du das Vorkommen eines Strings in einem anderen Überprüfen. Wenn du dann nach '[Nr.' suchst, kannst du die Ziffern danach auslesen und eine Liste mit den vorhandenen Nummern erstellen.
Das machst du dann mit beiden Listen und vergleichst, welche Zahlen übereinstimmen. Per Stringreplace kannst du dann die Namen ersetzen.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Vergleichen von .txt's / Benutzen von "Markern"

  Alt 9. Mär 2006, 06:37
Herzlich willkommen in der Delphi-PRAXiS, Shizo.

Wer hat dieses Datenformat verbrochen? Wenn du Einfluß darauf nehmen kannst, dann sorge dafür, dass der Marker auf einer eigenen Zeile steht - die Verarbeitung wird dadurch zum Kinderspiel.

Andernfalls müsstest du beschreiben, ob noch weitere Bedingungen gelten. Günstig wäre es, wenn deine Marker in beiden Dateien die gleiche Ordnung aufweisen würden. Du könntest die Dateien dann klassisch verarbeiten, ohne sie komplett im Hauptspeicher zu halten.

Die Nummer kannst du dir dann so besorgen:

Delphi-Quellcode:
var
  nr, line: String;
begin
  line := '[Nr: 1234] name=abc';
  nr := Between(line, '[Nr: ', ']');
end;
Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
Shizo

Registriert seit: 8. Mär 2006
2 Beiträge
 
#4

Re: Vergleichen von .txt's / Benutzen von "Markern"

  Alt 9. Mär 2006, 16:45
Ich danke euch

Also ich kann keinen Einfluss auf die .txt's (scrips) nehmen da ich sie von "externer quelle" beziehe und sie nur meinen wünschen anpassen möchte.
Und da monatlich neuerungen dazukommen benötige ich eben eine Automatisierung

Ich werd mit beiden Varianten mal nen bissl rumprobieren...
Hoff es klappt so wie ich es mir vorstell.

Wird bestimmt nicht der letzte thread von mir gewesen sein ^^
(erstmal wieder in die materie reinfinden, da ich seit 1 jahr nich mehr mit delphi gearbeitet hab )
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#5

Re: Vergleichen von .txt's / Benutzen von "Markern"

  Alt 9. Mär 2006, 16:56
Code:
[Nr: 1024] name=Example
Wert1_Beispiel= 512
Wert2_Beispiel= 256

[Nr: 2048] name=McDonalds
Wert1_McDonalds= 768
Wert2_McDonalds= 512
Mir kommts so vor als wäre das eine INI-Datei. Eigentlich sollte hinter der Eck-Klammer nichts stehen sondern dies in der nächsten Zeile sein. Evtl. packt einen solchen Code die ini-Funktion trotzdem. INI kannst du so in deiner Anwendung verwenden:

Delphi-Quellcode:
uses ..,inifiles;

...

procedure blubb(sender: Tobject);
var
 ini : tinifile;
begin
 ini:=tinifile.create('C:\datei.ini');
//der wert aus der inidatei wird in ein editfeld geschrieben, aufbau der inifunktion: 1. param: Sektion (das zwischen den Eckklammern), Name, Default-Wert
edit1.text:=ini.readstring('Nr: 1024','Wert1_Beispiel','');
end;
  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 12:03 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