Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

Welche Programmiersprache für ein einfaches Programm?

derderswissenwill1 / 6 Antworten / Flachansicht Nickles

Hi, wenn ich z.b. eine bootp datei habe und in dieser Datei soll wirklich nur ein Eintrag einmal vorhanden sein, also ein Wert darf nicht doppelt in dieser Datei gepflegt sein, wie kann ich dies überprüfen? Mit welcher Programmiersprache oder Windowsbatch kann ich so etwas realisieren? Wer kann mir Tipps geben? Vielen Dank schon mal.

bei Antwort benachrichtigen
ChrE derderswissenwill1 „Welche Programmiersprache für ein einfaches Programm?“
Optionen

Hallo!

Vielleicht geht das:

--- schnipp

import sys # fuer die Kommandozeilenparameter
import md5 # Pruefsummenbibliothek
lines = open(sys.argv[1], "r").readlines() # alle Zeilen einlesen
hashdict={} # hier speichern wir die Hashcodes
hash=md5.new(lines[0]) # Hashcode der ersten Zeile
hashdict[hash.digest()]="" # den Hashwert der ersten Zeile abspeichern
dellist=[] # die Liste der zu loeschenden Zeilen
for i in range(1,len(lines)): # Schleife: Zeile 2 - Ende
-> hash=md5.new(lines[i]) # Hashwert der aktuellen Zeile ausrechnen
-> if hashdict.has_key(hash.digest()): # aktueller Hash schon vorhanden?
--> dellist.append(i) # diese Zeile bitte loeschen
-> else:
--> hashdict[hash.digest()]="" # unique Zeilen ins Dictionary
dellist.reverse() # damit die Indexe nicht verrutschen
for duplicate in dellist:
-> del lines[duplicate] # loesche alle mehrfachen Zeilen
f = open(sys.argv[2], "w") # die Ausgabedatei oeffnen
f.writelines(lines) # schreibe alle uebriggebliebenen Zeilen
f.close() # das wars

--- schnapp

Übernehme keine Garantie für die Richtigkeit.
-> = ein Tab
--> = zwei Tabs (bei Python ist die Formatierung wichtig)

Gruss

ChrE

bei Antwort benachrichtigen