 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
30.04.2003, 11:03
|
#1
|
|
TP-Veteran
Registriert seit: Jun 2001
Ort: Wien
|
Dateien vergleichen, brauche kleine Starthilfe
Hallo!
Ich muss den Inhalt zweier .csv-Dateien vergleichen! Der Inhalt beider Dateien besteht aus einer Nummer und einen Namen z.B. 1/08/2300589; MAX TESTMANN
In einer Datei sind ca. 7000 Datesätze in der anderen über 13000 und ich muss jetzt schauen ob einige von den 7000 in den 13000 drinn sind. Am besten wäre es ja über die Nummern zu suchen weil die Namen doppelt vorkommen können. Das Problem ist das es bei den Nummer differenzen in der Schreibweise geben könnte. Ich will daher nur die letzten fünf Stellen der Nummer nehmen und damit arbeiten!
Ich find jetzt aber keinen Einstiegspunkt wo ich anfangen kann ich hab keine Ahnung wie ich die Zahlen vergleiche!!!
lg
Flow
__________________
Lesser known Programming Languages #13: SLOBOL
... Although many compilers allow you to take a coffee break while they compile, SLOBOL compilers allow you to travel to Bolivia to pick the coffee. Forty-three programmers are known to have died of boredom sitting at their terminals while waiting for a SLOBOL program to compile. Weary SLOBOL programmers often turn to a related (but infinitely faster) language, COCAINE.
|
|
|
30.04.2003, 11:22
|
#2
|
|
TP-Veteran
Registriert seit: Apr 2001
Ort: Münster und gerade aus Brisbane
|
also ich würde es so machen:
du liest einfach die gesamten zeilen der beiden dateien aus und vergleichst dann miteinander. über substr() kannst du dir die zeile ja so zurechtschneiden, wie du möchtest und diese beiden teile vergleichst du dann. problem: 70000 und 130000 zeilen miteinander zu vergleichen dürfte einiges an webserver zeit in anspruch nehmen: am besten lokal nen webserver installieren und das timeout limit ziemlich hoch setzen!!
|
|
|
30.04.2003, 11:28
|
#3
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Jo... etwas Rechenintensiv bzw. Speicherintensiv wird das werden.
Mein Vorschlag wäre:
- Die Datei zeilenweise einlesen
- bei jeder Zeile die Zahlen, die du vergleichen willst in ein Array packen (ich geh jetzt davon aus, dass die Zahlen "eindeutig" sind)
- Danach die 2te Datei zeilenweise Einlesen.
- Auch hier die Zahlen ziehen und schauen, ob der Wert schon im Array vohanden ist. Falls ja: echo "doppelt" - Falls nicht: musst du wisse
Gruss
Jan
EDIT
@jph: es sind 7000 und 13000  Du hast da eine Null zuviel...
|
|
|
30.04.2003, 11:43
|
#4
|
|
TP-Veteran
Registriert seit: Jun 2001
Ort: Wien
|
Naja, dass das Rechenintensiv wird is mir auch klar! Mir stellte sich nur die Frage was dass Geschickteste ist das ganze anzufangen! Ich wer mal schauen wie weit ich komme! Bei Problemen bin ich eh gleich wieder da!
lg
Flow
__________________
Lesser known Programming Languages #13: SLOBOL
... Although many compilers allow you to take a coffee break while they compile, SLOBOL compilers allow you to travel to Bolivia to pick the coffee. Forty-three programmers are known to have died of boredom sitting at their terminals while waiting for a SLOBOL program to compile. Weary SLOBOL programmers often turn to a related (but infinitely faster) language, COCAINE.
|
|
|
30.04.2003, 11:45
|
#5
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
is das eine periodische aufgabe oder nur einmalig?
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
30.04.2003, 11:48
|
#6
|
|
TP-Veteran
Registriert seit: Jun 2001
Ort: Wien
|
Einmalig, aber was macht das für einen unterschied???
__________________
Lesser known Programming Languages #13: SLOBOL
... Although many compilers allow you to take a coffee break while they compile, SLOBOL compilers allow you to travel to Bolivia to pick the coffee. Forty-three programmers are known to have died of boredom sitting at their terminals while waiting for a SLOBOL program to compile. Weary SLOBOL programmers often turn to a related (but infinitely faster) language, COCAINE.
|
|
|
30.04.2003, 11:53
|
#7
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
warum liest du dann die dateien nicht in eine db wie access ein und vergleichst sie mit sql-boardmitteln, bevor du da grossartig zum programmieren anfängst?
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
30.04.2003, 12:01
|
#8
|
|
TP-Veteran
Registriert seit: Jun 2001
Ort: Wien
|
In PHP hab ich's halbwegs vor Augen wie ich es anstellen könnte aber ich hab schon seit ewigkeiten nix mehr mit Access gemacht und wüsste so auf die schnelle auch gar nicht wie ich das fertig bringe!
Außerdem ist es möglich das der gleiche fall nochmal auftritt!!
__________________
Lesser known Programming Languages #13: SLOBOL
... Although many compilers allow you to take a coffee break while they compile, SLOBOL compilers allow you to travel to Bolivia to pick the coffee. Forty-three programmers are known to have died of boredom sitting at their terminals while waiting for a SLOBOL program to compile. Weary SLOBOL programmers often turn to a related (but infinitely faster) language, COCAINE.
|
|
|
30.04.2003, 12:57
|
#9
|
|
TP-Veteran
Registriert seit: Feb 2002
|
Ich würde das auch in ner mySQL DB machen. Die CSV Dateien kannst Du doch prima in eine mySQL Datenbank packen und nen fertiger Apache ist schnell installiert 
__________________
class GetProfileCustomerEntityReceiverInformationReceiverAndProgrammingInforma...{
public function __construct(){ if(!$this) die(' '); } }
http://www.thedailywtf.com/
|
|
|
30.04.2003, 15:54
|
#10
|
|
TP-Veteran
Registriert seit: Jun 2001
Ort: Wien
|
denkfehler ?!?!?
OK, also die Daten von den 2 .csv-Dateien sind jetzt in der DB (pro Datei eine Tabelle)!
Mit dem Code bin ich soweit gekommen:
PHP-Code:
<?php
$host = "localhost";
$usr = "root";
$pass = "";
$conn = mysql_connect($host, $usr, $pass) or die ("Keine Verbindung<br>\n".mysql_error());
mysql_select_db ("test", $conn);
$sql1 = "SELECT * FROM generali1";
$sql2 = "SELECT * FROM generali2";
$ergebnis1 = mysql_query($sql1, $conn);
$ergebnis2 = mysql_query($sql2, $conn);
while ($row1 = mysql_fetch_array($ergebnis1))
{
$len1 = strlen($row1[0])-6;
$teil1 = substr($row1[0], $len);
while ($row2 = mysql_fetch_array($ergebnis2))
{
$len2 = strlen($row2[0])-6;
$teil2 = substr($row2[0], $len2);
if ($teil1 == $teil2)
{
echo $row1[0]." ".$row1[1]." -> ".$row2[0]." ".$row2[1]."<br>\n";
}
}
}
mysql_close($conn);
?>
Irgendwo hab ich einen Denkfehler drinn!!!
lg
Flow
__________________
Lesser known Programming Languages #13: SLOBOL
... Although many compilers allow you to take a coffee break while they compile, SLOBOL compilers allow you to travel to Bolivia to pick the coffee. Forty-three programmers are known to have died of boredom sitting at their terminals while waiting for a SLOBOL program to compile. Weary SLOBOL programmers often turn to a related (but infinitely faster) language, COCAINE.
|
|
|
30.04.2003, 16:07
|
#11
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
aha. ein versicherer
geh folgendermassen vor (da du scheinbar auf mysql gegangen bist)
selecte dir aus dem kleineren DS (den 7000er) via distinct die nummern:
select distinct id from tabelle1...
dann setze diese in eine Schleife
dort hol dir deine Nummer raus und mach dann
pro datensatz eine like-suche auf die grosse tabelle:
select count(ID) from tabelle where ID like '%teilstringdernummer'
werte die id aus (Achtung count() bringt dir auch bei null sätzen einen Wert zurück)
Alternativ kannst dich ja an die pear-db schnittstelle wenden, die hat eine goile funktion -> getOne($sql) da wird dir der Wert postwendend zurückgeworfen.
however so oder so ähnlich wärs ich angegangen.
Heavy load auf alle fälle
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
30.04.2003, 17:34
|
#12
|
|
TP-Veteran
Registriert seit: Jun 2001
Ort: Wien
|
Zitat:
|
Heavy load auf alle fälle
|
Du sprichst wahre Worte!
Übrigens gut geraten (das mit der Versicherung) woran hast Du das gesehen??
Danke vorerst mal, ich werd eh wieder schreien wenn ich hilfe brauch!
lg
Flow
__________________
Lesser known Programming Languages #13: SLOBOL
... Although many compilers allow you to take a coffee break while they compile, SLOBOL compilers allow you to travel to Bolivia to pick the coffee. Forty-three programmers are known to have died of boredom sitting at their terminals while waiting for a SLOBOL program to compile. Weary SLOBOL programmers often turn to a related (but infinitely faster) language, COCAINE.
|
|
|
30.04.2003, 17:42
|
#13
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
komm auch aus der gegend...
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
02.05.2003, 13:45
|
#14
|
|
TP-Veteran
Registriert seit: Jun 2001
Ort: Wien
|
OK, die Situation hat sich etwas geändert!
Es geht jetzt nicht mehr um .csv-Dateien die vergleichen werden müssen sondern um zwei Abfrageergebnisse aus zwei Tabellen einer DB!
Beide enthalten u.a. zwei Felder mit folgendem Inhalt:
Datum (Format: JJJJMM) , Nummer (z.B.: 1326/45589)
Es geht jetzt darum die Inhalte der beiden Ergebnisse zu vergleichen (wird ein Soll-Ist vergleich für Einnahmen)!
Ich brauch eure Hilfe da ich mit der Reihenfolge der Schleife(n) ein Problem habe!
Folgendes soll geschehen:
Vergleich des Datums --> falls Datum ident, vergleich des Nummer --> wenn Datum und Nummer ident --> ausgabe des restlichen Ergebnisses!
Bitte helft mir!
lg
Flow
P.S.: Ich sollte vielleicht noch erwähnen das ich per ODBC auf die DB zugreife
__________________
Lesser known Programming Languages #13: SLOBOL
... Although many compilers allow you to take a coffee break while they compile, SLOBOL compilers allow you to travel to Bolivia to pick the coffee. Forty-three programmers are known to have died of boredom sitting at their terminals while waiting for a SLOBOL program to compile. Weary SLOBOL programmers often turn to a related (but infinitely faster) language, COCAINE.
Geändert von Flow09 (02.05.2003 um 14:40 Uhr).
|
|
|
02.05.2003, 21:13
|
#15
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
if($datum1 != $datum2)
contiune;
if($nummer1 == $nummer2)
ausgabe
zu odbc.
schau dir mal die adodb-lib an http://php.weblogs.com/ADODB
oder auch pear-db. da kannst du ganz gut abstrahieren, damit du nicht odbc coden musst.
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 04:54 Uhr.
|
 |