Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   C Programming (http://www.velocityreviews.com/forums/f42-c-programming.html)
-   -   Removing empty lines (http://www.velocityreviews.com/forums/t751788-removing-empty-lines.html)

happytoday 07-21-2011 07:35 PM

Removing empty lines
 
It was required to remove empty lines using C program . Either to be
run like :

../nnoemptylines < textfile


or accept location of the file as a full path from the user dialog to
accept .



John Gordon 07-21-2011 08:58 PM

Re: Removing empty lines
 
In <dd3fce00-b8a2-4758-9184-dd2bb5fe89f8@e7g2000vbj.googlegroups.com> happytoday <ehabaziz2001@gmail.com> writes:

> It was required to remove empty lines using C program . Either to be
> run like :


> ./nnoemptylines < textfile


> or accept location of the file as a full path from the user dialog to
> accept .


You haven't actually asked a question. What do you want?

--
John Gordon A is for Amy, who fell down the stairs
gordon@panix.com B is for Basil, assaulted by bears
-- Edward Gorey, "The Gashlycrumb Tinies"


Alexander Bartolich 07-21-2011 10:42 PM

Re: Removing empty lines
 
happytoday wrote:
> It was required to remove empty lines using C program . Either to be
> run like :
>
> ./nnoemptylines < textfile
>
>
> or accept location of the file as a full path from the user dialog to
> accept .


1 #include <unistd.h>
2 int main()
3 {
4 extern char **environ;
5 static char* const argv[3] = { "/bin/sed", "/^$/d", 0 };
6 return execve(argv[0], argv, environ);
7 }

--

Alexander Bartolich 07-21-2011 10:43 PM

Re: Removing empty lines
 
happytoday wrote:
> It was required to remove empty lines using C program . Either to be
> run like :
>
> ./nnoemptylines < textfile


$ nl -ba nnoemptylines.c
1 #include <unistd.h>
2 int main()
3 {
4 extern char **environ;
5 static char* const argv[3] = { "/bin/sed", "/^$/d", 0 };
6 return execve(argv[0], argv, environ);
7 }

--

Keith Thompson 07-22-2011 12:07 AM

Re: Removing empty lines
 
happytoday <ehabaziz2001@gmail.com> writes:
> It was required to remove empty lines using C program . Either to be
> run like :
>
> ./nnoemptylines < textfile
>
>
> or accept location of the file as a full path from the user dialog to
> accept .


One common answer to questions like this is to ask the questioner
to supply the e-mail address of his or her instructor, so we can
submit our solutions directly.

--
Keith Thompson (The_Other_Keith) kst-u@mib.org <http://www.ghoti.net/~kst>
Nokia
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"

J. J. Farrell 07-22-2011 12:43 AM

Re: Removing empty lines
 
happytoday wrote:
> It was required to remove empty lines using C program . Either to be
> run like :
>
> ./nnoemptylines < textfile
>
>
> or accept location of the file as a full path from the user dialog to
> accept .


So? Do you have a question about C?

osmium 07-22-2011 12:57 AM

Re: Removing empty lines
 
"happytoday" wrote:

> It was required to remove empty lines using C program . Either to be
> run like :
>
> ./nnoemptylines < textfile
>
>
> or accept location of the file as a full path from the user dialog to
> accept .


It is extremely unlikely that you will get any actual help until you post
code of an attempt, however misguided, that you have made at solving the
problem. Lacking that, you will simply get abuse and misleading advice.



Eric Sosman 07-22-2011 01:16 AM

Re: Removing empty lines
 
On 7/21/2011 3:35 PM, happytoday wrote:
> It was required to remove empty lines using C program . Either to be
> run like :
>
> ./nnoemptylines< textfile
>
>
> or accept location of the file as a full path from the user dialog to
> accept .


One essential ingredient will be a means to determine whether
a particular line is or is not empty. Starting with the observation
that a string is empty if and only if all its substrings are empty,
you could use something like

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int isEmpty(const char *string) {
int all_are_empty = 1; /* optimistic start */
for (size_t p = 0; p < strlen(string); ++p) {
for (size_t q = p; q < strlen(string); ++q) {
char *temp = malloc(q - p + 1);
if (temp == NULL) {
fputs("Out of memory!\n", stderr);
abort();
}
memcpy(temp, string + p, q - p);
temp[q - p] = '\0';
all_are_empty &= isEmpty(temp);
free(temp);
}
}
return all_are_empty;
}

This solution is efficient because it's recursive.

--
Eric Sosman
esosman@ieee-dot-org.invalid

Kenny McCormack 07-22-2011 01:30 AM

Re: Removing empty lines
 
In article <98s08fFe8aU1@mid.individual.net>,
osmium <r124c4u102@comcast.net> wrote:
>"happytoday" wrote:
>
>> It was required to remove empty lines using C program . Either to be
>> run like :
>>
>> ./nnoemptylines < textfile
>>
>>
>> or accept location of the file as a full path from the user dialog to
>> accept .

>
>It is extremely unlikely that you will get any actual help until you post
>code of an attempt, however misguided, that you have made at solving the
>problem. Lacking that, you will simply get abuse and misleading advice.


And when you do post code, it (*) will just get worse.

(*) The abuse and misleading advice.

--
(This discussion group is about C, ...)

Wrong. It is only OCCASIONALLY a discussion group
about C; mostly, like most "discussion" groups, it is
off-topic Rorsharch [sic] revelations of the childhood
traumas of the participants...


Malcolm McLean 07-22-2011 03:29 AM

Re: Removing empty lines
 
On Jul 21, 10:35*pm, happytoday <ehabaziz2...@gmail.com> wrote:
> It was required to remove empty lines using C program . Either to be
> run like :
>
> ./nnoemptylines < textfile
>
> or accept location of the file as a full path from the user dialog to
> accept .
>

The spec is almost impossible.

../noemptylines < textfile redirects textfile to stdin. So if the
program is invoked thusly, it needs to read in lines from stdin, check
if they are non-blank, and then echo them to stdout. So far so good.
The problem is that
../noemptyfiles

should set up a dialogue with the user. So you want to print something
like
"Hello user, please enter the name of the file from which ypu wish to
remove blanks"
The user enters
textfile
"Thank you, do you wish to overwrite the file?"

etc

The problem is that there's no easy way to know whether stdin is
directed from a file or coming from a keyboard. That's deliberate. We
don't generally want programs making this distinction. I'm sure that
on your particular system there will besome operating call, probably
poorly documented, which you can make. But it's inappropriate and bad
practice to use it for a ultility program like a deblanker.

I'd throw the spec back, with this objection.

--
Roll up, roll up, free source code
http://www.malcolmmclean.site11.com/www



All times are GMT. The time now is 08:38 AM.

Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57