Kan man kolla om en fil är en texfil. Alltså html, txt, asp, htc m.m. är ju textfiler medans .doc, .ppt, pdf .exe m.m. inte är det. Finns det något sätt man kan kolla om en fil är en så kallad textfil?
Du får öppna filen och kolla om innehållet stämmer med din definition av "textfil". Det är väldigt subjektivt och jag själv skulle tex inte gärna kalla en HTML-fil för en "textfil" eftersom den innehåller formateringskoder som gör att den bara kan visas i vissa program (webbläsare).
Nja, nu undrade han ju om en fil var binär eller text.
Gör en frekvensanalys (kolla hur många gånger olika tecken förekomer). I en textfil förekommer inte chr(0) och mellan 1 och 31 är det i stort bara 13 och 10 som förekommer, och de är vanilga. I en textfil är också A-Z och a-z vanliga.
Nja, nu undrade han ju om en fil var binär eller text.
Jo, tack. Det förstod jag. Och det var också det jag menade var subjektivt och beroende på hur man definierar "textfil".
Är en fil som består av ett enda tecken som av en slump råkar vara "a" en textfil?
Är filer som innehåller formateringskoder "textfiler" om formateringskoderna enbart innehåller ASCII-tecken?
Är ett RTF-dokument som består till 99 % av ASCII-tecken och 1 % av en inbäddad bild en "textfil"?
Om nåt är en textfil eller inte är en gränsdragning och avgörs av den som tolkar/skapar filen. Ur operativets synvinkel är alla filer binära.
tydal skrev:
I en textfil förekommer inte chr(0)
OK. Då är alltså inte en fullt läsbar fil skriven i notepad och sparad som Unicode en "textfil" enligt din definition? Du ser själv hur subjektivt det kan vara ..
Om jag förklarar lite bättre för kanske ni kommer överens om en bra lösning.
Jag ska använda det till en sökfunktion. Om det t.ex är en pdf finns det ju ingen mening med att söka i innehållet eftersom man inte får ut nått av det utan då får man nöja sig med filnamnet.
Är det däremot en html dokument kan man med regexp plocka bort html koden och sedan göra en sökning.
Om det är en rtf fil med 90% ascii och 10% binärt av en inbäddad bild så kan det ju även där vara värt att söka i texten.
Kanske är det bästa att göra en switch case sats där man kollar filändelsen och sedan gör rätt sak för rätt fil.
Kanske är det bästa att göra en switch case sats där man kollar filändelsen och sedan gör rätt sak för rätt fil.
Ja, jo .. Om du inte har skäl att tro att folk medvetet jäklas så kan du säkert utgå från att *.pdf är PDF:er, att *.gif är GIF:ar osv ..
Det enda som ibland kan ställa till är väl att vissa filändelser kan betyda olika saker beroende på vilket program de är skapade i. *.doc kan tex vara binärt Word-format eller RTF om den är skapad i Wordpad. Fast å andra sidan tycker jag inte du ska söka textmässigt i RTF:er i vilket fall som helst, hur ASCII-mässiga dom än är.
253 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e