Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 275
  • Last Modified:

Generate Ordered Numbers (Starting at a Specified #)

Hello All;
This is a bit of an "Must Have" issue.

I need to have a function that will Generate Numbers from a {Starting # that I specify} into the beginning of every line in a RichEdit.
For Example: (Have a TEdit, to allow for Starting Number Insertion)

Line line line line
Line line line line
Line line line line

In this example, I need to start the Number out at: [6] so it would be something like this
6 Line line line line
6 Line line line line
6 Line line line line


Please someone, have any idea's on this one?
Carrzkiss
0
Wayne Barron
Asked:
Wayne Barron
  • 4
  • 4
  • 2
  • +1
1 Solution
 
KyleyHarrisCommented:
do you mean something like

6 line line line
7 line line line
8 line line line

I take it you already know how to insert text into a richedit? using SelPos, and SelText?

So what you need to do is determine what line number you want to start on, and then seek the endofline and insert the text.
Are you also wanting to remove numbers from the richedit if you call the routine again with a different starting number?

What control specifically do you want to do this with, Tedit, or TRichEdit? it makes a difference
0
 
atul_parmarCommented:
var
  s, i : integer;
begin
  s := 10;
  for i := 0 to RichEdit1.Lines.Count - 1 do
    RichEdit1.Lines.Strings[i] := inttostr(s + i) + RichEdit1.Lines.Strings[i];
end;
0
 
atul_parmarCommented:
If you dont want to increment the starting number then

var
  s, i : integer;
begin
  s := 10; // your starting number
  for i := 0 to RichEdit1.Lines.Count - 1 do
    RichEdit1.Lines.Strings[i] := inttostr(s) + RichEdit1.Lines.Strings[i];
end;

0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
Wayne BarronAuthor, Web DeveloperAuthor Commented:
Yes Harris
6 line line line
7 line line line
8 line line line
That is what I meant. Sorry about that, was 1/2 a sleep while writing it.

Atul, I will get back with you sometime after while if this code is what I need.
The one thing that I do not see in either of the codes that you have supplied here
Is a way to manually change the beginning #, like a Edit1.text...

Thanks a bunch guys
0
 
Wayne BarronAuthor, Web DeveloperAuthor Commented:
Harris.
The Starting # would be a TEdit
The lines are contained in a TRichEdit.
(If that is what you are asking about)
And no, I will not be having to Remove the Numbers.
This will be used as a 1-time thing.

Thanks
0
 
atul_parmarCommented:
var
  i : integer;
begin
  for i := 0 to RichEdit1.Lines.Count - 1 do
    RichEdit1.Lines.Strings[i] := Edit1.Text + RichEdit1.Lines.Strings[i];
end;
0
 
Wayne BarronAuthor, Web DeveloperAuthor Commented:
Sorry Atul.
I think that I goofed at the beginning of the post.
And you probably have not read my comment that cleared up my mistake.

I need the numbers to be like so:

Line line line line
Line line line line
Line line line line

In this example, I need to start the Number out at: [6] so it would be something like this
6 Line line line line
7 Line line line line
8 Line line line line

They need the numbers to be Ordered, (NOT) Rambom, and not just 1-single #

Sorry about the confusement.
I was 1/2 a sleep, when I wrote the starting of this Post/Question.
0
 
atul_parmarCommented:
var
  s, i : integer;
begin
  s := StrToInt(Edit1.Text);
  for i := 0 to RichEdit1.Lines.Count - 1 do
    RichEdit1.Lines.Strings[i] := inttostr(s + i) + RichEdit1.Lines.Strings[i];
end;


If you are using D7 above, use TryStrToInt instead of StrToInt function.
0
 
mikelittlewoodCommented:
var
  s, i, code : integer;
begin

  // first check that you have a valid integer to work with
  val( Trim(edit1.text), i, code)
  if code = 0 then
    s := i
  else
    exit;

  // now loop
  for i := 0 to RichEdit1.Lines.Count - 1 do
    RichEdit1.Lines.Strings[i] := inttostr(s + i) + RichEdit1.Lines.Strings[i];
end;
0
 
Wayne BarronAuthor, Web DeveloperAuthor Commented:
Sorry Mike.
I had already accepted "atul" as Answer.
Thank you for your time anyway.

Thank you both
0
 
mikelittlewoodCommented:
no problem :)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

  • 4
  • 4
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now