Kezdőoldal » Számítástechnika » Programozás » Pascal-ban miként oldható meg...

Pascal-ban miként oldható meg olyan probléma, hogy többszáz fájlban azonos HTML formátumú linkeket kellene szűrni, esetleg segédprogram létezik rá?

Figyelt kérdés

Adott többszáz fájl, amelyekben HTML hivatkozások vannak (ezek tulajdonképpen EML formátumban lévő levelek, de a levelezőprogrammal HTML-ben is tudom menteni őket). Szeretném csak azoknak a html hivatkozásoknak a listáját megkapni, amelyek csak egyetlenegyszer szerepelnek bármelyik fájlban, a fájlok közt rengeteg az átfedés, teljesen véletlenszerűen vannak a hivatkozások.

A sortörések sem szabályosak, van hogy 255 karakternél is hosszabbak a sorok ráadásul esetenként pont a sortörésnél törik a link... Kinek milyen ötlete van a feladat kapcsán, illetve ha létezik erre valamiféle segédprogram akkor nem állnék neki a programnak...

Régebben valami olyan metódust próbáltam, hogy karakterenként olvastam a text fájlt és ha a < karakter után 'a' karakter következett, megírtam a többire is: ha szóköz jön, utána ha "h", "r", "e", "f", akkor vegye figyelembe stb... Ez a próbálkozás már elveszett egy váratlanul bekövetkező számítástechnikai probléma miatt... Nem tudom, linux alatt "grep", "awk", "sed" meg hasonlókkal esetleg jobban megoldható lenne a probléma? Shell szkript programozással sose foglalkoztam.



2015. márc. 24. 07:31
 1/7 Tengor ***** válasza:

Mennyire szabályos (x)HTML? XML-ként értelmezhető? Ha igen, akkor XSLT-vel és egy XML processzorral viszonylag könnyen kigyűjthetők a linkek.

Ha szabályos, akkor az XSLT megírásában szívesen segítek.

2015. márc. 24. 07:47
Hasznos számodra ez a válasz?
 2/7 A kérdező kommentje:
Sima HTML-be tudom menteni a Thunderbird Import Export tools nevű kiegészítővel, vagy EML formátumba is tudom menteni, bár akkor is HTML lesz maga a levél, mert eleve HTML-ként érkezik. Szerintem nem olyan formátumú amit írtál, sajnos.
2015. márc. 24. 17:45
 3/7 anonim ***** válasza:

Érdemes megismerkedned a reguláris kifejezésekkel, amelyek pont ezt a nyűglődést szüntetik meg, hogy magad próbálod karakterenként elvégezni a szövegelemzést. Viszont a Pascal tudtommal nem támogatja ezeket, de egy ilyen egyszerű programot nem nagy munka más hasonló nyelven megírni. Ez a karakterenkénti módszer járható, de kínszenvedés lesz.


Ha ez megvan, és ki tudod szűrni a linkeket, akkor használj halmaz adattípust, ami minden modern nyelvben megvan, még a Pascalban is, és így minden csak egyszer fog szerepelni.

2015. márc. 25. 23:21
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:

FreePascalban megoldható a reguláris kifejezések használata:

[link]


Egyébként a

/href="(.[^"]*)"/

reguláris kifejezés lesz a barátod - itt egy teszt:

[link]

2015. márc. 25. 23:57
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:
Na, ez jó hír. :-)
2015. márc. 26. 00:15
Hasznos számodra ez a válasz?
 6/7 anonim ***** válasza:
Még egy dolog jutott az eszembe: mivel e-mailekről van szó, bekavarhat a tartalomkódolás - mint például a Base64, az utf-8 és hasonló nyalánkságok - erre érdemes lesz ügyelni.
2015. márc. 26. 00:25
Hasznos számodra ez a válasz?
 7/7 tabaki ***** válasza:

@#3:

„használj halmaz adattípust, ... így minden csak egyszer fog szerepelni.”


Szerintem ez éppenhogy elrejti, melyik hivatkozás szerepel csak egyetlenegyszer. Inkább számolni kéne a találatokat, és a végén csak azokat figyelembe venni, amelyiknél egy van.

2015. márc. 28. 02:03
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!