Hi,
Like many other languages, COBOL has many different implementations, each with varying syntax on certain commands. Whilst the core of it is/should be the same across implementations, there may, or rather will be, different ways of accessing data.
So this brings me to some questions:
- What system are you writing this for (computer, OS, compiler version, etc)?
- If the file is a text file, are you aware there is only a "brute force" way to retrieve a random record (ie read every record until you get the one you want)?
- Do you know the size of the file in (a) records, and (b) record width [longest word]?
- How do you want to randomly choose a record - is it the user selecting a number or are you using a random number generator, or some other means?
- How are you looping - (a) until the file is fully read, (b) predefined number, or (c) user input to confirm when done?
COBOL has no Random Number Generator, so it will have to be written. I tried years ago, but out of 20 numbers, I always got 1, 2 & 3 or 18, 19 & 20. You will be better off if you can read the date&time, to the second, and if possible down to 100ths of a second, to use as the seed for your generator, and that varies between COBOL compilers.
Cobol likes to read whole records from a file, not characters, so accessing a text file in Windows may be tricky, given the variable record length (I've never written for Windows, nor used variable records), but I expect it should still work.
If write some code, it will be based the system I use, and will probably need to be adapted to yours. I just want to make sure this is not part of some sort of assignment first.