Ok.....this is stupid for a beginner, but its for an assignm - Printable Version +- Qbasicnews.com (http://qbasicnews.com/newforum) +-- Forum: QBasic (http://qbasicnews.com/newforum/forum-4.html) +--- Forum: QB Discussion & Programming Help (http://qbasicnews.com/newforum/forum-11.html) +--- Thread: Ok.....this is stupid for a beginner, but its for an assignm (/thread-1978.html) Pages:
1
2
|
Ok.....this is stupid for a beginner, but its for an assignm - eric - 09-11-2003 How do i delete 1 whole line from a file? The data in it is stored like:- Name,Day,Month,City Name2,Day2,Month2,City2 If the user inputs name1 then the 1st line should get deleted. Any1 helpful? deleting a line from a file. - Mango - 09-12-2003 eric, You prob. won't like the answer. unless the line happens to be at the end, it's a little tricky. suppose you have 5 lines in the file 1 2 3 4 5 and you want to delete line 2. Well...since a "file" is really just a pointer to the begining of the file plus the length of file information, and since the file exists in contiguous segments of the physical media, there really is no easy way. You need to do something like this... copy line 3 to line 2 copy line 4 to line 3 copy line 5 to line 4 erase line 5. to get: 1 3 4 5 in the file. good luck. When's the assignment due? Ok.....this is stupid for a beginner, but its for an assignm - oracle - 09-12-2003 You could do a loop to count how many CR+LF's you come across (carriage return+line feed, at the end of every line). So if they input a word at the start of a line, you do a loop, checking each word. If it matches the inputted word, and the characters before it were CHR$(13) and CHR$(10), you know that it's at the start of a line, so you start deleting until you reach the start of the next line (after a CHR$(13)+CHR$(10) again). Though I'm no expert on files, there may be something else at the end of a line (in UNIX it goes CHR$(10) then CHR$(13) afaik). Ok.....this is stupid for a beginner, but its for an assignm - Neo - 09-12-2003 Yes that's right. In every windows/dos: CHR$(13) + CHR$(10) In unix (not sure): CHR$(10) Some other os: CHR$(13) Ok.....this is stupid for a beginner, but its for an assignm - Mango - 09-12-2003 Quote:If it matches the inputted word, and the characters before it were CHR$(13) and CHR$(10), you know that it's at the start of a line, so you start deleting until you reach the start of the next line.... Oracle...your method should work. However the real question is how to "start deleting"? The basic problem is how to delete particular elements of an array? for example if you have an array of 100 integers, how would you "delete" the elements 50-74, leaving a 75-element array? In the array case, it's prob easiest to copy the wanted values into a new, temp, array, redim the original to the needed size, then dump contents of temp into the resized array. This approach will work for files, too, although you can dump to memory instead of dumping to another file, which makes it somewhat easier. I Anyway, the point is that "deleting" data in a serial data-stream is not all that trivial. It's like removing a track from a music tape, or taking the commercials out of a VHS taped TV show. In these cases, the easiest approach is usually to make a second recording of the first...less the "deleted" material. Ok.....this is stupid for a beginner, but its for an assignm - eric - 09-12-2003 ok guys....the bad news is...the stuff isnt in arrays The thing is that the stuff is just inputted in the file directly I tried to input the stuff in the form of an array but the data in the file looked a bitlike this : - "Name1" " " "City1" " " "Date1" " " "Time1" " " "Name2" " " "City2" " " Date2" '' '' ''Time2" .........etc thats how it comes. So now can someone help me input the stuff in a file with arrays such that the data in the file is stored in this form:- "Name1","City1","Time1","Date1" "Name2","City2","Time2","Date2" ....etc THATS NOT ALL! Then i want some help in deleting whole entry, as in , i want 1 whole line to be deleted. Thanks if you can help me.....thanks if u cant. P.S. - Please post the whole code if you can , and use beginner-ish language. Ok.....this is stupid for a beginner, but its for an assignm - whitetiger0990 - 09-13-2003 wait wait wait... is this the same problem as http://forum.qbasicnews.com/viewtopic.php?t=3849 or am i seeing things? Ok.....this is stupid for a beginner, but its for an assignm - LinkMaster Sab - 09-13-2003 If its in a file, then you can read it into some arrays Ok.....this is stupid for a beginner, but its for an assignm - oracle - 09-13-2003 Quote:oracle Wrote:If it matches the inputted word, and the characters before it were CHR$(13) and CHR$(10), you know that it's at the start of a line, so you start deleting until you reach the start of the next line.... I'll rehark back to the problem that GDMgames was having with his FTP program, where he wanted the entire non-sequential file read into one variable, and now I see how useful it could be. Read the whole file into one variable, do what I say up there to delete the record, then read the variable back into the file I'll try to find the thread with my code, and make it work. Ok.....this is stupid for a beginner, but its for an assignm - Janesh - 09-13-2003 :rotfl: :rotfl: eric is surojit :rotfl: :rotfl: |