* Using "pure" (?) Ada, how to determine whether a file is a "text" file, not a binary? @ 2023-07-01 17:15 Kenneth Wolcott 2023-07-01 20:39 ` Jeffrey R.Carter 0 siblings, 1 reply; 7+ messages in thread From: Kenneth Wolcott @ 2023-07-01 17:15 UTC (permalink / raw) Hi; Another very beginner question here... Using "pure" (?) Ada, how to determine whether a file is a "text" file, not a binary? Kind of like using the UNIX/Linux "file" command, but doesn't have to be comprehensive (yet). Something like the Perl "-T" feature. On the other hand, if there already exists an Ada implementation of the UNIX "file" command as a library, could you point me to that? As a side question, how does one read "binary" files in Ada? A UNIX/Linux use case for the previous sentence is the concatenation of two (or more) "binary" files that were created using the UNIX/Linux "split" command. So I'd be interested in emulating the UNIX "cat" command for "binary" files. These are just personal experiments for learning how to do all kinds of Ada I/O... Thanks, Ken Wolcott ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Using "pure" (?) Ada, how to determine whether a file is a "text" file, not a binary? 2023-07-01 17:15 Using "pure" (?) Ada, how to determine whether a file is a "text" file, not a binary? Kenneth Wolcott @ 2023-07-01 20:39 ` Jeffrey R.Carter 2023-07-01 20:54 ` Kenneth Wolcott 0 siblings, 1 reply; 7+ messages in thread From: Jeffrey R.Carter @ 2023-07-01 20:39 UTC (permalink / raw) On 2023-07-01 19:15, Kenneth Wolcott wrote: > > Using "pure" (?) Ada, how to determine whether a file is a "text" file, not a binary? That depends on the definition of a text file. Under Unix and Windows, all files are sequences of bytes, and so may be considered sequences of Characters, and so text files. If you can define what distinguishes text files from binary files, then it should be fairly easy to write Ada to distinguish them. For example, if a text file is one in which all the characters, except line terminators, are graphic characters, then it should be clear how to determine whether a file meets that definition of a text file. > As a side question, how does one read "binary" files in Ada? Ada has Direct_IO, Sequential_IO, and Stream_IO for reading binary files. Which you would use and how to use it depends on what's in the file and what you need to do with it. -- Jeff Carter "Ada is the only language where users are happy to have compilation errors!" Jean-Pierre Rosen 166 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Using "pure" (?) Ada, how to determine whether a file is a "text" file, not a binary? 2023-07-01 20:39 ` Jeffrey R.Carter @ 2023-07-01 20:54 ` Kenneth Wolcott 2023-07-01 21:39 ` Keith Thompson 0 siblings, 1 reply; 7+ messages in thread From: Kenneth Wolcott @ 2023-07-01 20:54 UTC (permalink / raw) On Saturday, July 1, 2023 at 1:39:30 PM UTC-7, Jeffrey R.Carter wrote: > On 2023-07-01 19:15, Kenneth Wolcott wrote: > > > > Using "pure" (?) Ada, how to determine whether a file is a "text" file, not a binary? > That depends on the definition of a text file. Under Unix and Windows, all files > are sequences of bytes, and so may be considered sequences of Characters, and so > text files. > > If you can define what distinguishes text files from binary files, then it > should be fairly easy to write Ada to distinguish them. > > For example, if a text file is one in which all the characters, except line > terminators, are graphic characters, then it should be clear how to determine > whether a file meets that definition of a text file. I think that is the definition that I'm going to pursue as the simplest and effective definition. > > As a side question, how does one read "binary" files in Ada? > Ada has Direct_IO, Sequential_IO, and Stream_IO for reading binary files. Which > you would use and how to use it depends on what's in the file and what you need > to do with it. Ok, now that seems to be pretty obvious! I'll go and experiment further... Thank you! Ken ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Using "pure" (?) Ada, how to determine whether a file is a "text" file, not a binary? 2023-07-01 20:54 ` Kenneth Wolcott @ 2023-07-01 21:39 ` Keith Thompson 2023-07-01 21:50 ` Kenneth Wolcott 0 siblings, 1 reply; 7+ messages in thread From: Keith Thompson @ 2023-07-01 21:39 UTC (permalink / raw) Kenneth Wolcott <kennethwolcott@gmail.com> writes: > On Saturday, July 1, 2023 at 1:39:30 PM UTC-7, Jeffrey R.Carter wrote: >> On 2023-07-01 19:15, Kenneth Wolcott wrote: [...] >> For example, if a text file is one in which all the characters, except line >> terminators, are graphic characters, then it should be clear how to determine >> whether a file meets that definition of a text file. > > I think that is the definition that I'm going to pursue as the > simplest and effective definition. Think about how you want to handle tab characters (non-graphic but common in some text) and carriage return characters (non-graphic but part of a line terminator for Windows-style text files). Also think about the various ways of representing text: ASCII, Latin-1, UTF-8, UTF-16, etc. -- Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com Will write code for food. void Void(void) { Void(); } /* The recursive call of the void */ ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Using "pure" (?) Ada, how to determine whether a file is a "text" file, not a binary? 2023-07-01 21:39 ` Keith Thompson @ 2023-07-01 21:50 ` Kenneth Wolcott 2023-07-02 1:08 ` Chris Townley 0 siblings, 1 reply; 7+ messages in thread From: Kenneth Wolcott @ 2023-07-01 21:50 UTC (permalink / raw) On Saturday, July 1, 2023 at 2:39:06 PM UTC-7, Keith Thompson wrote: > Kenneth Wolcott writes: > > On Saturday, July 1, 2023 at 1:39:30 PM UTC-7, Jeffrey R.Carter wrote: > >> On 2023-07-01 19:15, Kenneth Wolcott wrote: > [...] > >> For example, if a text file is one in which all the characters, except line > >> terminators, are graphic characters, then it should be clear how to determine > >> whether a file meets that definition of a text file. > > > > I think that is the definition that I'm going to pursue as the > > simplest and effective definition. > Think about how you want to handle tab characters (non-graphic but > common in some text) and carriage return characters (non-graphic but > part of a line terminator for Windows-style text files). > > Also think about the various ways of representing text: ASCII, Latin-1, > UTF-8, UTF-16, etc. Thanks, Keith! It looks like just need to more carefully examine the existing Ada I/O packages and experiment with the possibilities... Ken ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Using "pure" (?) Ada, how to determine whether a file is a "text" file, not a binary? 2023-07-01 21:50 ` Kenneth Wolcott @ 2023-07-02 1:08 ` Chris Townley 2023-07-02 1:48 ` Kenneth Wolcott 0 siblings, 1 reply; 7+ messages in thread From: Chris Townley @ 2023-07-02 1:08 UTC (permalink / raw) On 01/07/2023 22:50, Kenneth Wolcott wrote: > On Saturday, July 1, 2023 at 2:39:06 PM UTC-7, Keith Thompson wrote: >> Kenneth Wolcott writes: >>> On Saturday, July 1, 2023 at 1:39:30 PM UTC-7, Jeffrey R.Carter wrote: >>>> On 2023-07-01 19:15, Kenneth Wolcott wrote: >> [...] >>>> For example, if a text file is one in which all the characters, except line >>>> terminators, are graphic characters, then it should be clear how to determine >>>> whether a file meets that definition of a text file. >>> >>> I think that is the definition that I'm going to pursue as the >>> simplest and effective definition. >> Think about how you want to handle tab characters (non-graphic but >> common in some text) and carriage return characters (non-graphic but >> part of a line terminator for Windows-style text files). >> >> Also think about the various ways of representing text: ASCII, Latin-1, >> UTF-8, UTF-16, etc. > > Thanks, Keith! > > It looks like just need to more carefully examine the existing Ada I/O packages and experiment with the possibilities... > > Ken Maybe worth looking at the unix file utility, docs and source are available -- Chris ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Using "pure" (?) Ada, how to determine whether a file is a "text" file, not a binary? 2023-07-02 1:08 ` Chris Townley @ 2023-07-02 1:48 ` Kenneth Wolcott 0 siblings, 0 replies; 7+ messages in thread From: Kenneth Wolcott @ 2023-07-02 1:48 UTC (permalink / raw) On Saturday, July 1, 2023 at 6:08:21 PM UTC-7, Chris Townley wrote: > On 01/07/2023 22:50, Kenneth Wolcott wrote: > > On Saturday, July 1, 2023 at 2:39:06 PM UTC-7, Keith Thompson wrote: > >> Kenneth Wolcott writes: > >>> On Saturday, July 1, 2023 at 1:39:30 PM UTC-7, Jeffrey R.Carter wrote: > >>>> On 2023-07-01 19:15, Kenneth Wolcott wrote: > >> [...] > >>>> For example, if a text file is one in which all the characters, except line > >>>> terminators, are graphic characters, then it should be clear how to determine > >>>> whether a file meets that definition of a text file. > >>> > >>> I think that is the definition that I'm going to pursue as the > >>> simplest and effective definition. > >> Think about how you want to handle tab characters (non-graphic but > >> common in some text) and carriage return characters (non-graphic but > >> part of a line terminator for Windows-style text files). > >> > >> Also think about the various ways of representing text: ASCII, Latin-1, > >> UTF-8, UTF-16, etc. > > > > Thanks, Keith! > > > > It looks like just need to more carefully examine the existing Ada I/O packages and experiment with the possibilities... > > > > Ken > Maybe worth looking at the unix file utility, docs and source are available Thank you, Chris. I have just downloaded the source code for the UNIX/Linus file command and am browsing around... Thanks, Ken ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2023-07-02 1:48 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-07-01 17:15 Using "pure" (?) Ada, how to determine whether a file is a "text" file, not a binary? Kenneth Wolcott 2023-07-01 20:39 ` Jeffrey R.Carter 2023-07-01 20:54 ` Kenneth Wolcott 2023-07-01 21:39 ` Keith Thompson 2023-07-01 21:50 ` Kenneth Wolcott 2023-07-02 1:08 ` Chris Townley 2023-07-02 1:48 ` Kenneth Wolcott
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox