How to delete a specific line from a text file in Delphi
Friday, February 15, 2019

How to delete a specific line from a text file in Delphi

Stack Overflow



  1. Log In
    Sign Up

  2. current community


    • Stack Overflow

      help
      chat

    • Meta Stack Overflow

    your communities

    Sign up or log in to customize your list.

    more stack exchange communities

    company blog

    • Tour

      Start here for a quick overview of the site

    • Help Center

      Detailed answers to any questions you might have

    • Meta

      Discuss the workings and policies of this site

    • About Us

      Learn more about Stack Overflow the company

    • Business

      Learn more about hiring developers or posting ads with us

By using our site, you acknowledge that you have read and understand our Cookie Policy , Privacy Policy , and our Terms of Service .

How to delete a specific line from a text file in Delphi

Ask Question


up vote
9
down vote

favorite

2

I have a text file with user information stored in it line by line. Each line is in the format: UserID#UserEmail#UserPassword with ‘#’ being the delimiter.

I have tried to use this coding to perform the task:

var sl:TStringList;
begin sl:=TStringList.Create; sl.LoadFromFile('filename'); sl.Delete(Index); sl.SaveToFile('filename'); sl.free;
end;

But I’m not sure what to put in the “index” space.

Is there any way I can receive the User ID as input and then delete the line of text from the text file that has this user ID in? Any help would be appreciated.

delphi text-files delphi-7

share | improve this question

asked Aug 18 ’16 at 15:10

Mark van Heerden

557

  • I guess you have to loop through each line of sl and compare it. When you found a match remember the index your on and pass it to sl.Delete()
    –  GuidoG
    Aug 18 ’16 at 15:13

  • You are not asking about deleting a line. You already know how to do that. You are asking about finding a line. Read each line, parse it, find the line(s) that match. What part can’t you do?
    –  David Heffernan
    Aug 18 ’16 at 18:24

  • The term Index, in this context, refers to the Line Number of the Item within the list. TStringLists are 0 based, so the first line is 0, 2nd is 1, etc. The answers below help you, and can be modified to suit your own circumstances. Also, be aware there is a bug that causes Delimiters to not function correctly (certainly in Delphi 7), don’t rely on it. Don’t load a CSV file and rely on Delimiter Functions.
    –  Admiral Noisey Bottom
    Aug 19 ’16 at 3:17

add a comment  | 

6 Answers
6

active

oldest

votes


up vote
6
down vote

accepted

You can set the NameValueSeparator to # then use IndexOfName to find the user, as long as the username is the first value in the file.

sl.NameValueSeparator := '#';
Index := sl.IndexOfName('455115')

So in your example, like so

var sl:TStringList;
begin sl:=TStringList.Create; sl.LoadFromFile('filename'); sl.NameValueSeparator := '#'; Index := sl.IndexOfName('455115') if (Index <> -1) then begin sl.Delete(Index); sl.SaveToFile('filename'); end; sl.free;
end;

This may be slow on large files as IndexOfName loops though each line in the TStringList and checks each string in turn until it finds a match.

Disclaimer: Tested/ works with Delphi 2007, Delphi 7 may be diffrent.

share | improve this answer

edited Aug 18 ’16 at 15:38

answered Aug 18 ’16 at 15:31

Re0sless

7,96444263

  • This algorithm works, but once the line has been deleted it leaves an extra open line in the text file which is problematic when it comes to populating an array of users from data in the text file. Is there any way to execute this algorithm but incorporate a method to delete the extra line that is left in the text file?
    –  Mark van Heerden
    Aug 18 ’16 at 16:50

  • @MarkvanHeerden: What extra line are you referring to? Please be more specific. Delete() removes the entire line, it does not write it out as an empty line. The only possible place I could think an empty line would appear is at the very end of the file, but SaveToFile() should not be writing an empty line there, unless the last entry in the list is empty to begin with. Are you SURE no entries in the list are empty to begin with?
    –  Remy Lebeau
    Aug 18 ’16 at 18:20


  • The empty line that appears is at the end of the file. And you are correct, the last entry is an empty line to begin with. This is due to when adding a new user I use the Writeln() statement and add a #13 at the end to ensure that it writes to a new line every time. Is there a way i can rework to avoid getting the extra line?
    –  Mark van Heerden
    Aug 18 ’16 at 18:41

  • 1

    @MarkvanHeerden simply do not append a #13 manually. WriteLn() already outputs a line break for you. That is what makes it different than Write().
    –  Remy Lebeau
    Aug 19 ’16 at 0:44


  • It works perfectly now. Thank you very much!
    –  Mark van Heerden
    Aug 19 ’16 at 6:38

 | 
show 2 more comments


up vote
1
down vote

I don’t see why so many people make this so hard. It is quite simple:

function ShouldDeleteLine(const UserID, Line: string): Boolean;
begin // Remember: Pos(Needle, Haystack) Result := Pos(UserID + '#', Line) = 1; // always 1-based!
end;
procedure DeleteLinesWithUserID(const FileName, UserID: string);
var SL: TStringList; I: Integer;
begin if not FileExists(FileName) then Exit; SL := TStringList.Create; try SL.LoadFromFile(FileName); // Add exception handling for the // case the file does not load properly. // Always work backward when deleting items, otherwise your index // may be off if you really delete. for I := SL.Count - 1 downto 0 do if ShouldDeleteLine(SL[I], UserID) then begin SL.Delete(I); // if UserID is unique, you can uncomment the following line. // Break; end; SL.SaveToFile(FileName); finally SL.Free; end;
end;

As Arioch’The says, if you save to the same file name, you risk losing your data when the save fails, so you can do something like

SL.SaveToFile(FileName + '.dup');
if FileExists(FileName + '.old') then DeleteFile(FileName + '.old');
RenameFile(FileName, FileName + '.old');
RenameFile(FileName + '.dup', FileName);

That keeps a backup of the original file as FileName + '.old'.

Explanations

Working backward

Why work backward? Because if you have the following items

A B C D E F G ^

And you delete the item at ^, then the following items will shift downward:

A B C E F G ^

If you iterate forward, you will now point to

A B C E F G ^

and E is never examined. If you go backward, then you will point to:

A B C E F G ^

Note that E, F and G were examined already, so now you will indeed examine the next item, C, and you won’t miss any. Also, if you go upward using 0 to Count - 1, and delete, Count will become one less and at the end, you will try to access past the boundary of the list. This can’t happen if you work backwards using Count - 1 downto 0.

Using + '#'

If you append '#' and test for Pos() = 1, you will be sure to catch the entire UserID up to the delimiter, and not a line with a user ID that only contains the UserID you are looking for. IOW, if UserID is 'velthuis', you don’t want to delete lines like 'rudyvelthuis#rvelthuis01#password' or 'velthuisresidence#vr#password2', but you do want to delete 'velthuis#bla#pw3'.

E.g. when looking for a user name, you look for '#' + UserName + '#' for the same reason.

share | improve this answer

edited Aug 19 ’16 at 21:53

answered Aug 18 ’16 at 20:45

Rudy Velthuis

23.8k43474

  • I see the second item is an email and not a user name. Oh well, with this iPad editing is a bit awkward and the principle is the same anyway.
    –  Rudy Velthuis
    Aug 18 ’16 at 21:15

  • this risks destroying all user data on failed save attempt
    –  Arioch ‘The
    Aug 19 ’16 at 9:19

  • Sure. I could write to a different name, delete the original file and then rename to the original name. Not part of the question, IMO. The question is how to delete the line(s).
    –  Rudy Velthuis
    Aug 19 ’16 at 21:27

  • but "how to delete line on disk " not "how delete line in memory "
    –  Arioch ‘The
    Aug 21 ’16 at 21:45

  • See the code in the original question. The question was how to delete the line with the given user ID.
    –  Rudy Velthuis
    Aug 21 ’16 at 23:20

 | 
show 5 more comments


up vote
0
down vote

There is the only way to actually “delete a line from the text file” – that is to create a new file with changed content, to REWRITE it.

So you better just do it explicitly.

And don’t you forget about protecting from errors. Your current code might just destroy the file and leak memory, if any error occurs…

var sl: TStringList; s, prefix: string; i: integer; okay: Boolean; fs: TStream;
begin prefix := 'UserName' + '#'; okay := false; fs := nil; sl:=TStringList.Create; Try /// !!!! sl.LoadFromFile('filename'); fs := TFileStream.Create( 'filename~new', fmCreate or fmShareExclusive ); for i := 0 to Prev(sl.Count) do begin s := sl[ i ]; if AnsiStartsStr( prefix, Trim(s) ) then continue; // skip the line - it was our haunted user s := s + ^M^J; // add end-of-line marker for saving to file fs.WriteBuffer( s[1], length(s)*SizeOf(s[1]) ); end; finally fs.Free; sl.Free; end; // here - and only here - we are sure we successfully rewritten // the fixed file and only no are able to safely delete old file if RenameFile( 'filename' , 'filename~old') then if RenameFile( 'filename~new' , 'filename') then begin okay := true; DeleteFile( 'filename~old' ); end; if not okay then ShowMessage(' ERROR!!! ');
end;

Note 1: See if check for username should be case-sensitive or case-ignoring:

  • http://www.freepascal.org/docs-html/rtl/strutils/ansistartsstr.html
  • http://www.freepascal.org/docs-html/rtl/strutils/ansistartstext.html

Note 2: in Delphi 7 SizeOf( s[1] ) is always equal to one because string is an alias to AnsiString. But in newer Delphi version it is not. It might seems tedious and redundant – but it might save a LOT of headache in future. Even better would be to have a temporary AnsiString type variable like a := AnsiString( s + ^m^J ); fs.WriteBuffer(a[1],Length(a));

share | improve this answer

answered Aug 18 ’16 at 15:57

Arioch ‘The

12.8k1647

  • Will having a generic name for the old text file and new text file not result in error when running this algorithm more than once?
    –  Mark van Heerden
    Aug 18 ’16 at 16:59

  • @MarkvanHeerden 1) no – because after successful ending of this algo the temporary file is deleted and only the file with original name remains, like before the start. 2) more importantly, those constants are obviously stub, which would be replaced in real program. I could add the code to generate random temporary file name – but it would add too much detail to this skeleton, blurring the intention. More so, in production I’d maybe even go with auto-delete files, that’re not available in Delphi RTL, yet again I’d rather not pollute this brief simplified demo with all those bells and whistles
    –  Arioch ‘The
    Aug 18 ’16 at 19:22

add a comment  | 


up vote
0
down vote

So far everyone has been suggesting the use for a For..Then Loop but can I suggest a Repeat..While.

The traditional For..Loop is a good option but could be inefficient if you have a long list of Usernames (they are usually unique). Once found and deleted the For Loop continues until the end of the list. That’s ok if you have a small list but if you have 500,000 Usernames and the one you want is at position 10,000 there is no reason to continue beyond that point.

Therefore, try this.

 Function DeleteUser(Const TheFile: String; Const TheUserName: String): Boolean; Var CurrentLine: Integer; MyLines: TStringlist; Found: Boolean; Eof: Integer; Begin MyLines := TStringlist.Create; MyLines.LoadFromFile(TheFile); CurrentLine := 0; Eof := Mylines.count - 1; Found := false; Repeat If Pos(UpperCase(TheUserName), UpperCase(MyLines.Strings[CurrentLine])) = 1 Then Begin MyLines.Delete(CurrentLine); Found := True; End; Inc(CurrentLine); Until (Found) Or (CurrentLine = Eof); // Jump out when found or End of File MyLines.SaveToFile(TheFile); MyLines.Free; result := Found; End;

Once called the function returns True or False indicating the Username was deleted or not.

If Not DeleteUsername(TheFile,TheUsername) then
ShowMessage('User was not found, what were you thinking!');

share | improve this answer

answered Aug 20 ’16 at 2:06

Admiral Noisey Bottom

8419

  • While I love the "purity" of good programming using repeat/until or while to exit from a loop, keep in mind that in Delphi (like in "C") you can use "break" (to jump out of the loop) or "continue" to go back at the beginning. While those two could look "almost like a goto/label", they are actually cleaner to read and faster to execute than creating a flag and checking for it.
    –  ZioBit
    Nov 13 ’17 at 12:43

add a comment  | 


up vote
0
down vote

Just for fun, here’s a compact solution, which I like for its readability.

const fn = 'myfile.txt';
procedure DeleteUser(id: integer);
var s:string; a:TStringDynArray;
begin for s in TFile.ReadAllLines(fn) do if not s.StartsWith(id.ToString + '#') then a := a + [s]; TFile.WriteAllLines(fn, a);
end;

Obviously it’s not the most efficient solution. This could run faster by not appending single items to the array, or by caching the search string.

And to search for other fields, you could use s.split(['#'])[0] to find the username, s.split(['#'])[1] for email, etc.

share | improve this answer

answered Aug 20 ’16 at 3:14

Wouter van Nifterick

18.6k364115

add a comment  | 


up vote
0
down vote

For those who like one-liners. This works too:

const fn = 'users.txt';
procedure DeleteUserRegExp(id: string);
begin TFile.WriteAllText(fn,TRegEx.Replace(TFile.ReadAllText(fn),''+id+'\#.*\r\n',''))
end;

Explanation

  1. It loads the content of a file into a string.
  2. The string is sent to TRegEx.Replace
  3. The regular expression searches for the username followed by the hash sign, then any character, and then a CRLF. It replaces it with an empty string.
  4. The resulting string is then written to the original file

This is just for fun though, because I saw long code where I thought that this would be possible with a single line of code.

share | improve this answer

edited Aug 20 ’16 at 3:25

answered Aug 20 ’16 at 3:18

Wouter van Nifterick

18.6k364115

add a comment  | 

Not the answer you’re looking for? Browse other questions tagged delphi text-files delphi-7 or ask your own question .

asked

2 years, 3 months ago

viewed

2,123 times

active

2 years, 3 months ago

Related

1153

Why should text files end with a newline?

786

How to get line count cheaply in Python?

586

How do I save a String to a text file using Java?

610

How to append text to an existing file in Java

2

Delphi Binary/Text File Necessity

0

How to delete a certain line in a text file?

19

How to save a string to a .txt file in Delphi?

5

Delete line from text file with line numbers from another file

2

Modifying or deleting a line from a text file the low-level way?

0

Deleting a line based on a delimiter from text file C

Hot Network Questions

  • MOSFET W/L ratio limits: what’s (un)reasonable?

  • Isn’t supervisor bound to teach for saving time?

  • Why are fuel tanks located in wings?

  • Trifid Cipher (without keyword)

  • Fusion mass to energy when does gravity stop?

  • Printing every 10th result in an alternating ± series

  • What is the cmp.addValueProvider() feature designed for?

  • Maybe u should investigate carefully?

  • What type of crank fitting is this?

  • Non scalable unit in tikz

  • Is Voyager 2 capable of proving the existence of Oort cloud?

  • Can a multiclassed Wizard/Sorcerer use the Twinned Spell metamagic option on Simulacrum?

  • How to graph a logistic equation using tikz

  • How much water should I let my dog drink?

  • Unavailable manager says ‘I’m always available’

  • How should I approach reverse engineering this text encoding?

  • ELI5: The Logic Behind Coefficient Estimation in OLS Regression

  • 9sums – a logical deduction puzzle

  • How do microstrips actually represent lumped components?

  • Combining first two letters from first name and first two letters from last name

  • Why was Frodo unable to destroy the Ring?

  • Close all tabs in Safari except for one

  • What to do if you notice a substantial improvement to a result in a paper whilst refereeing it?

  • Is it a good idea to push new employees to prove themselves in their first 90 days?

more hot questions


question feed

lang-pascal

Stack Overflow works best with JavaScript enabled

Home C and C++

How do i delete first line of a text file


sonu_amit sonu_amit




in C and C++

[blue]i want to read first line of a text file into a buffer.
After taking into buffer i want that line to be deleted from the file.
Besides the next line should become the first line.
It is possible but not happening with me.[/blue]
[code][red]
Open File In Read Mode
Read the First Line from the File
Copy This Line into a buffer
This buffer is for some Intended use.
Open Another File in Write Mode
Write the Rest Of the File Contents
Close Fst File
Close Scnd File
Delete Fst File
Rename Scnd as Fst.
[/red][/code]

Need some favors.
😀 Thnx And Regards 😀

Comments


  • stober stober



    [b][red]This message was edited by stober at 2004-11-27 8:34:24[/red][/b][hr]
    The sudo-code you posted is ok, so post your c/c++ code. After opening the second file for output, its just create a loop where it reads a line from input file and writes it back to the output file. Do this until all lines have been read from input file.

    : [blue]i want to read first line of a text file into a buffer.
    : After taking into buffer i want that line to be deleted from the file.
    : Besides the next line should become the first line.
    : It is possible but not happening with me.[/blue]
    : [code][red]
    : Open File In Read Mode
    : Read the First Line from the File
    : Copy This Line into a buffer
    : This buffer is for some Intended use.
    : Open Another File in Write Mode
    : Write the Rest Of the File Contents
    : Close Fst File
    : Close Scnd File
    : Delete Fst File
    : Rename Scnd as Fst.
    : [/red][/code]
    :
    : Need some favors.
    : 😀 Thnx And Regards 😀
    :
    :
    :


  • AsmGuru62 AsmGuru62



    [blue][b]stober[/b], you should be SOOOOOOOO tired of answering that by now!..
    I noticed the FAQ does not have a HOW-TO section where this question belongs.[/blue]


  • rajistephen rajistephen



    Sonu,
    you can solve this problem simply by using a loop as stober said.
    for that you may follow this,

    Initiallize a variable, say; i=0;
    open the 1st file in read mode.
    open a second file in write mode.
    start a while loop, say; while(Fhandle1)
    Use, Fhandle1.getline(char_array, size);
    if(i==0)str==char-array; //this string will store the 1st line
    else Fhandle2<<char_array;
    i++;
    you can remove any files in Linux using, system(“rm file);
    I hope this way u can correct ur program.


  • sonu_amit sonu_amit




    [green]

    [/green]
    [blue]
    Further to add file I contains

    asdfg
    ghjkl
    mnopu
    qwert

    then file II shoud get
    ghjkl
    mnopu
    qwert
    [/blue]

    This has to become a small utility for some other appln n be iterative in nature
    and also ,[red]I fail to rename the file iow’s delete the fst file.[/red]
    The code is fr ur perusal
    [code]
    #include
    #include
    #include
    #include
    #include
    FILE *rdfile,*writefl;
    int main()

    int i,j,p,q;
    char ch[40],cha[100];

    if( (rdfile = fopen( “c:\a.txt”, “r+t” )) == NULL )
    // exit( 0 );
    puts(“Error Opening File”);
    // READ FIRST LINE FROM FILE I
    j = fgetc(rdfile);

    for( i=0,p=0;j!=’
    ‘;p++,i++ )

    ch[i] = (char)j;
    j = fgetc( rdfile );
    q=i;

    ch[i] = 0;
    // this fst line is being chkd in some other appln and
    // so should be freed after the second line becomes the first.

    writefl = fopen(“c:\b.txt”, “w+t”);
    int l=ftell(rdfile);
    printf(“
    %d”,l);
    // fseek(rdfile,q,SEEK_SET);

    j = fgetc(rdfile);
    while(!feof(rdfile))

    cha[i] = (char)j;
    j = fgetc(rdfile);
    i=i+1;

    cha[i] = 0;
    fwrite(cha,sizeof(cha),1,writefl);

    printf( “%s
    “, cha);
    printf(“
    Len %d”,i);

    fclose( rdfile );
    fseek(writefl,0,SEEK_SET);
    fclose(writefl);
    //CopyFile(writefl,rdfile,false);
    // system(“xcopy writefl rdfile”)
    int k=getch();
    return 0;

    [/code]

    : [b][red]This message was edited by stober at 2004-11-27 8:34:24[/red][/b][hr]
    : The sudo-code you posted is ok, so post your c/c++ code. After opening the second file for output, its just create a loop where it reads a line from input file and writes it back to the output file. Do this until all lines have been read from input file.
    :
    : : [blue]i want to read first line of a text file into a buffer.
    : : After taking into buffer i want that line to be deleted from the file.
    : : Besides the next line should become the first line.
    : : It is possible but not happening with me.[/blue]
    : : [code][red]
    : : Open File In Read Mode
    : : Read the First Line from the File
    : : Copy This Line into a buffer
    : : This buffer is for some Intended use.
    : : Open Another File in Write Mode
    : : Write the Rest Of the File Contents
    : : Close Fst File
    : : Close Scnd File
    : : Delete Fst File
    : : Rename Scnd as Fst.
    : : [/red][/code]
    : :
    : : Need some favors.
    : : 😀 Thnx And Regards 😀
    : :
    : :
    : :
    :
    :
    :
    :


  • Kan Kan



    Just for fun – use the fstream to do the same thing

    [code]

    ifstream srcfile(“src.txt”);
    ofstream tarfile(“tar.txt”);

    const int maxsize = 2000;
    char buf[maxsize];

    // Skip first line
    if ( !srcfile.eof() )
    srcfile.getline( buf, maxsize, ‘
    ‘ );

    // Copy contents
    while( !srcfile.eof() )

    srcfile.getline(buf, maxsize);
    tarfile << buf << endl;

    [/code]

    :
    : [green]
    :
    : [/green]
    : [blue]
    : Further to add file I contains
    :
    : asdfg
    : ghjkl
    : mnopu
    : qwert
    :
    : then file II shoud get
    : ghjkl
    : mnopu
    : qwert
    : [/blue]
    :
    : This has to become a small utility for some other appln n be iterative in nature
    : and also ,[red]I fail to rename the file iow’s delete the fst file.[/red]
    : The code is fr ur perusal
    : [code]
    : #include<stdio.h>
    : #include
    : #include
    : #include
    : #include
    : FILE *rdfile,*writefl;
    : int main()
    :
    : int i,j,p,q;
    : char ch[40],cha[100];
    :
    : if( (rdfile = fopen( “c:\a.txt”, “r+t” )) == NULL )
    : // exit( 0 );
    : puts(“Error Opening File”);
    : // READ FIRST LINE FROM FILE I
    : j = fgetc(rdfile);
    :
    : for( i=0,p=0;j!=’
    ‘;p++,i++ )
    :
    : ch[i] = (char)j;
    : j = fgetc( rdfile );
    : q=i;
    :
    :
    : ch[i] = 0;
    : // this fst line is being chkd in some other appln and
    : // so should be freed after the second line becomes the first.
    :
    : writefl = fopen(“c:\b.txt”, “w+t”);
    : int l=ftell(rdfile);
    : printf(“
    %d”,l);
    : // fseek(rdfile,q,SEEK_SET);
    :
    : j = fgetc(rdfile);
    : while(!feof(rdfile))
    :
    :
    : cha[i] = (char)j;
    : j = fgetc(rdfile);
    : i=i+1;
    :
    :
    : cha[i] = 0;
    : fwrite(cha,sizeof(cha),1,writefl);
    :
    : printf( “%s
    “, cha);
    : printf(“
    Len %d”,i);
    :
    : fclose( rdfile );
    : fseek(writefl,0,SEEK_SET);
    : fclose(writefl);
    : //CopyFile(writefl,rdfile,false);
    : // system(“xcopy writefl rdfile”)
    : int k=getch();
    : return 0;
    :
    :
    : [/code]
    :
    :
    :
    : : [b][red]This message was edited by stober at 2004-11-27 8:34:24[/red][/b][hr]
    : : The sudo-code you posted is ok, so post your c/c++ code. After opening the second file for output, its just create a loop where it reads a line from input file and writes it back to the output file. Do this until all lines have been read from input file.
    : :
    : : : [blue]i want to read first line of a text file into a buffer.
    : : : After taking into buffer i want that line to be deleted from the file.
    : : : Besides the next line should become the first line.
    : : : It is possible but not happening with me.[/blue]
    : : : [code][red]
    : : : Open File In Read Mode
    : : : Read the First Line from the File
    : : : Copy This Line into a buffer
    : : : This buffer is for some Intended use.
    : : : Open Another File in Write Mode
    : : : Write the Rest Of the File Contents
    : : : Close Fst File
    : : : Close Scnd File
    : : : Delete Fst File
    : : : Rename Scnd as Fst.
    : : : [/red][/code]
    : : :
    : : : Need some favors.
    : : : 😀 Thnx And Regards 😀
    : : :
    : : :
    : : :
    : :
    : :
    : :
    : :
    :
    :

Sign In or Register to comment.

Howdy, Stranger!

It looks like you’re new here. If you want to get involved, click one of these buttons!

Sign In Register

  • Categories
  • Recent Discussions

Categories

  • 140.8K All Categories
  • 103.6K Programming Languages
  • 6.4K Assembler Developer
  • 401 Assembly Code Share
  • 239 Getting started in assembly
  • 4.6K x86 Assembly
  • 1.9K Basic
  • 97 Qbasic
  • 39.9K C and C++
  • 5.6K Beginner C/C++
  • 330 C/C++ on Linux/Unix
  • 450 C/C++ Windows API
  • 522 C++ Builder
  • 253 C++ Game Development
  • 3.3K C++ MFC
  • 103 C++.NET
  • 210 Embedded C/C++
  • 404 Visual C++
  • 2.9K C#
  • 7.9K Delphi and Kylix
  • 334 Advanced Delphi
  • 360 Delphi beginners
  • 4 Haskell
  • 9.7K Java
  • 56 Enterprise JavaBeans
  • 1.3K Java Beginners
  • 304 Java Server Pages
  • 4.1K Pascal
  • 1.3K Perl
  • 11 Perl 6
  • 2K PHP
  • 546 Python
  • 37 Ruby
  • 4.4K VB.NET
  • 258 Advanced VB.Net
  • 1.6K VBA
  • 20.8K Visual Basic
  • 767 Access databases and VB
  • 831 Advance Visual Basic
  • 1.2K Beginner VB
  • 2.6K Game programming
  • 315 Console programming
  • 90 DirectX Game dev
  • 1 Minecraft
  • 112 Newbie Game Programmers
  • 2 Oculus Rift
  • 9K Applications
  • 1.8K Computer Graphics
  • 279 3D Graphics
  • 129 DirectX
  • 125 OpenGL
  • 740 Computer Hardware
  • 9 Cooling & Overclocking
  • 3.4K Database & SQL
  • 1.1K Access
  • 91 ADO Programming
  • 288 MySQL
  • 358 Oracle
  • 440 SQL-Server
  • 535 Electronics development
  • 1.6K Matlab
  • 628 Sound & Music
  • 25 DirectSound
  • 257 XML Development
  • 3.3K Classifieds
  • 200 Co-operative Projects
  • 198 For sale
  • 190 FreeLance Software City
  • 1.9K Jobs Available
  • 603 Jobs Wanted
  • 209 Wanted
  • 2.9K Microsoft .NET
  • 1.8K ASP.NET
  • 1.1K .NET General
  • 22 .NET WEB-Services
  • 129 .NET WinForms
  • 14 .NET XML
  • 50 ADO.NET
  • 142 C# & VB.NET School Support
  • 3.4K Miscellaneous
  • 4 Join the Team
  • 354 Comments on this site
  • 69 Computer Emulators
  • 2.1K General programming
  • 187 New programming languages
  • 621 Off topic board
  • 200 Mobile & Wireless
  • 72 Android
  • 126 Palm Pilot
  • 338 Multimedia
  • 154 Demo programming
  • 184 MP3 programming
  • 6.9K Operating Systems & Platforms
  • 0 Bash scripts
  • 27 Cloud Computing
  • 1 Witsbits Go Cloud
  • 365 Embedded / RTOS
  • 53 FreeBSD
  • 1.7K LINUX programming
  • 1 Awk scripting
  • 332 Linux Support
  • 0 Sed scripting
  • 370 MS-DOS
  • 0 Shell scripting
  • 321 Windows CE & Pocket PC
  • 4.1K Windows programming
  • 177 COM/DCOM
  • 61 Networking And Security
  • 17 Windows 2003 Server
  • 6 Windows Vista
  • 176 Windows XP
  • 940 Software Development
  • 417 Algorithms
  • 68 Object Orientation
  • 24 RUP & UML
  • 91 Project Management
  • 95 Quality & Testing
  • 268 Security
  • 63 Evil Scripting
  • 81 Hacking
  • 7.7K WEB-Development
  • 1.8K Active Server Pages
  • 61 AJAX
  • 4 Bootstrap Themes
  • 55 CGI Development
  • 28 ColdFusion
  • 224 Flash development
  • 1.4K HTML & WEB-Design
  • 1.4K Internet Development
  • 131 Mobile Internet & Messaging
  • 211 Wireless development
  • 2.2K JavaScript
  • 37 JQuery
  • 304 WEB Servers
  • 153 Apache
  • 79 IIS
  • 150 WEB-Services / SOAP

In this Discussion

  • Kan
  • sonu_amit
  • rajistephen
  • AsmGuru62
  • stober

  • Discussions
  • Categories
  • Sign In