Missende 0 bij telefoonnummer / compileren onder windows


#1

Hallo,

Uit nieuwsgierigheid ben ik gisteren met foondump aan de slag gegaan. Wat een schitterend programma is het: eenvoudig in gebruik, snel en doeltreffend! Ook het configureren van fs2005.php was een fluitje van een cent.

Wat mij alleen vrij snel opviel was dat de telefoonnummers onder het i-icoontje een 0 missen, zodra de telefoonnummers alleen maar uit nummers bestaan. In de sourcecode zag ik bij dumper.c een extra conditie staat voor tag 0x54. Daar wordt namelijk een 0 toegevoegd aan de content. Volgens mij zou dit ook moeten gebeuren voor tag 0x57.

Om het te testen wilde ik de source opnieuw compileren. Met MingW heb ik het geprobeerd en met een speciale package van mame, maar bij beide krijg ik de fout bij uitvoeren dat “.dll” niet gevonden is. Ik ben nieuw met c en het compileren ervan (onder windows).

Kan iemand mij op de goede weg helpen?

Vriendelijke groeten,
Martijn.


#2

Als ik via cygwin probeer te compileren krijg ik de volgende foutmelding:

$ make gcc fd05-csv.o globals.o stringstore.o inforec.o dumper.o category.o btree.o c oords.o /usr/lib/libz.a -o fd05-csv fd05-csv.o:fd05-csv.c:(.text+0x144): undefined reference to `__imp___iob' fd05-csv.o:fd05-csv.c:(.text+0x17a): undefined reference to `__imp___iob' fd05-csv.o:fd05-csv.c:(.text+0x1a7): undefined reference to `__imp___iob' fd05-csv.o:fd05-csv.c:(.text+0x2ec): undefined reference to `__imp___iob' fd05-csv.o:fd05-csv.c:(.text+0x715): undefined reference to `__imp___iob' fd05-csv.o:fd05-csv.c:(.text+0x7aa): more undefined references to `__imp___iob' follow collect2: ld returned 1 exit status make: *** [fd05-csv] Error 1
Heeft iemand een oplossing?

Vriendelijke groeten,
Martijn


#3

Het compileren is gelukt met een aanpassing in de makefile. Ik heb het volgende fragment

CFLAGS= -O2 -Wall -pedantic CC=gcc
vervangen door

CC="`cygpath -m /usr/bin/gcc`" CXX="`cygpath -m /usr/bin/g++`" CFLAGS="-mno-cygwin" CXXFLAGS="-mno-cygwin" LDFLAGS="-mno-cygwin"
De laatste regel gaf uiteindelijk de doorslag. Ik ga nu de aanpassing testen…


#4

Op dit moment worden alle waarden in het info bestand ongewijzigd opgenomen omdat nog niet is uitgezocht wat alle tags precies betekenen. Daarom is ervoor gekozen om voorlopig helemaal niks met deze waarden te doen (reden zie onderaan). In de telefoonnummer en subscriber bestanden worden telefoonnummers inderdaad voorzien van een voorloopnul.

Je zal zien dat in de subscriber bestanden de nummers ook een voorloopnul krijgen:

Je hebt de conditie dus wel opgemerkt maar niet helemaal goed gelezen.

void dumpInfoRec (INFOREC *ir) { unsigned int i; for (i=0; i<ir->cnt; i++) { fprintf (fpInfo, "%ld|%d|%d|%s\n", ir->id, i, ir->pcTag[i], ir->pcContent[i]); if (ir->pcTag[i] == 0x54) { fprintf (fpPhone, "%ld|0%s\n", ir->id, ir->pcContent[i]); } } }
Alle waarden komen in het info bestand (fpInfo), en waarden met tag 0x54 komen ook in het telefoonnummer bestand (fpPhone). Wat hier dus gebeurt is niet alleen het toevoegen van een nul, maar het opnemen van de gevonden waarde in het bestand met telefoonnummers (met nul).
Je zal dus in het info bestand het telefoonnummer zonder voorloopnul vinden, en in het telefoonnummer bestand hetzelfde telefoonnummer met voorloopnul.

Ik raad je aan om waarden die je uit het info bestand haalt pas te interpreteren wanneer je ze gebruikt/toont. Op die manier kan je stukje bij beetje de betekenis van alle tags achterhalen zonder steeds opnieuw te moeten hercompileren/dumpen. In dit geval zou je aanpassing dus in fs2005.php moeten zitten!


#5

Beste rgj,

bedankt voor je reactie. Ook ik heb inmiddels gezien dat ik mij vergiste. In ieder geval in die 0x57. Dacht dat die ook iets mee te maken had met die missende 0 in het telefoonnummer, maar dat is dus helemaal niet zo.

Niettemin wilde ik de dumper aanpassen voor de missende 0, maar toen wist ik nog niet van jouw argument voor het “ongewijzigd overnemen”. Goed punt :lol:

Misschien dat ik dan eens in fs2005 wat ga puzzelen voor nettere weerave van de extra info.

Als je info hebt over andere bijdragen die dit al wilden realiseren (of hebben gerealiseerd), dan verneem ik dat graag van je. Opnieuw het wiel uitvinden is tenslotte ook zonde :wink:

Bedankt nogmaals en alvast een fijne jaarwisseling toegewenst!

Martijn


#6

Bij mijn weten zijn er nog geen mensen bezig om de info velden netjes te tonen. Op zich moet het niet zo heel lastig zijn, het is alleen aardig wat werk.

Zie http://www.foondump.nl/forum/viewtopic.php?t=161 voor de uitgezochte tag betekenissen (LET OP dit zijn decimale tags, dus 0x54 = 84 in deze tabel)

Je zou mij en anderen een groot plezier doen als je bereid bent hier wat werk in te steken :smiley:


#7

hoop doet leven :lol:

Ik zal eens kijken of ik er wat van kan breien :wink: