Entwickler-Ecke
Sonstiges (Delphi) - Eindeutige Nummer aus einem String? CRC32/Checksum?
JRegier - Do 15.12.05 15:21
Titel: Eindeutige Nummer aus einem String? CRC32/Checksum?
Hallo, ich möchte URL's in DB zu Online Bildern speichern, aber ich lade die Bilder herunter und will denen aus der URl berechnete eindeutige Nummer aus der URL generieren und die nummer als Dateiname nehmen!
Wie kann ich denn aus einer URL/String eine eindeutige Nummer machen ich meine das ist ein CRC32/Checksum, nur wie sieht die Formel aus? Ich habe mal IMHO gehört dass es solche Komponenten gibt aber braucht man denn da unbedingt Komponenten? Es reicht doch eine Formel dafür und ich denke mal dass die Nummer insgesamt kürzer sein wird als eine URL oder?
Moderiert von
Gausi: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Do 15.12.2005 um 14:29
Moderiert von
Tino: Überflüssige Zeilenumbrüche entfernt.
Gausi - Do 15.12.05 15:28
Warum ersetzt du nicht einfach alle Zeichen, die in der URL vorkommen, aber nicht in Dateinamen vorkommen dürfen (z.b. / ? :) durch ähnliche Zeichen (z.B. - $ ;)?
DaRkFiRe - Do 15.12.05 15:42
Wenn Du nicht den Dateinamen selbst nimmst, wird alles andere pseudo-eindeutig.
Es ist UNWAHRSCHEINLICH, dass andere Dateinamen die gleiche Ausgabe (Kollision) erzeugen.
Schau mal nach MD5 (128bit) oder SHA1 (160bit) - ansonsten kannst Du gern die Methode von Gausi nehmen.
JRegier - Do 15.12.05 15:59
Gausi hat folgendes geschrieben: |
| Warum ersetzt du nicht einfach alle Zeichen, die in der URL vorkommen, aber nicht in Dateinamen vorkommen dürfen (z.b. / ? :) durch ähnliche Zeichen (z.B. - $ ;)? |
Ich speichere in der DB zwar die korrekte URL aber daraus möchte ich eine eindeutige nummer berechnen weil dann
eben die Dateinamen nicht so lang sind, und es ist schöner als so ein Zeichensalat!
delfiphan - Do 15.12.05 16:45
Wieso nimmst du nicht einfach die Id-Nummer aus der Datenbank als Dateinamen (falls du so ne Id überhaupt hast). Ich denke, wenn du Dateinamen wie YYFLKELMNQ8 hast, ist das auch nicht sehr elegant und eine Rückwärtsrechnung ist auch (praktisch) unmöglich.
JRegier - Do 15.12.05 21:06
delfiphan hat folgendes geschrieben: |
| Wieso nimmst du nicht einfach die Id-Nummer aus der Datenbank als Dateinamen (falls du so ne Id überhaupt hast). Ich denke, wenn du Dateinamen wie YYFLKELMNQ8 hast, ist das auch nicht sehr elegant und eine Rückwärtsrechnung ist auch (praktisch) unmöglich. |
Ja super, das mit der ID ist ja OK, aber wenn mal in einem Datensatz mehrere URL's zu Bildern sind kann ich das nicht machen
oder? Doch ich kann die ID eines Feldes nehmen, die ID's habe ich, also:
Ich kann die ID/Primärschlüssel und FeldID nehmen
also Primärschlüssel + $ + FeldID z.B. 75676$234.jpg und dann kann ich auch wieder zurückrechnen
das wäre wie die Zuordnung auf einem Schachbrett/Tabelle
- meine Felder sind in einer TList und haben eine ID
- Ich durchlaufe die Felder und suche die FeldID welches Feld es ist
- z.B. ist der Key = 768 und das Feld heißt "xyz"
- Selektiere ich nachher so: SELECT `xyz` FROM `zzz` WHERE Primary = 768
Hiermit könnte ich also wieder ein Bild zuordnen aber eigentlich brauche ich das nicht, nicht
das ich wüsste aber es könnte sein dass der Benutzer es will,
na ja die Funktion könnte man reinbringen!
Vielen Dank noch für den Tip, ich denke das wird auch die einfachste Variante sein! :wink:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!