Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > String manipulation: cut, insert, column editing...

Reply
Thread Tools

String manipulation: cut, insert, column editing...

 
 
Toki Toki
Guest
Posts: n/a
 
      08-12-2008
Hi all,

Is it possible to use ruby like awk, sed or cut in unix to editing
strings?

Let say I have to write INSERT query like this:

This is the first (1°) item.
This is the second (2°) item.
This is the third (3°) item.
...

In one file I have the word-number (first, second, third) and in another
file I have the real number (1°, 2°, 3°) of the item, both on each line.

Of course, I don't want to really write it, so how can I "edit" the
number of the item dinamically? I've tried with regex, but I haven't
found a solution...

I think that with some text editors maybe it's possible to do that, but
I would like to know if with ruby the result can be achieved easier.

Let me know.

Thanks.

Best regards.
--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
 
 
 
Shashank Agarwal
Guest
Posts: n/a
 
      08-13-2008
Toki Toki wrote:
> Let say I have to write INSERT query like this:
>
> This is the first (1°) item.
> This is the second (2°) item.
> This is the third (3°) item.
> ...
>


I don't think this would be the best solution, but you could map 1 =>
"first"... and then use regex to identify the number and get its mapped
value. Problem is that it runs one way and limited.
--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
 
 
 
Eric I.
Guest
Posts: n/a
 
      08-13-2008
On Aug 12, 3:09*pm, Toki Toki <(E-Mail Removed)> wrote:
> Hi all,
>
> Is it possible to use ruby like awk, sed or cut in unix to editing
> strings?
>
> Let say I have to write INSERT query like this:
>
> This is the first (1) item.
> This is the second (2) item.
> This is the third (3) item.
> ..
>
> In one file I have the word-number (first, second, third) and in another
> file I have the real number (1, 2, 3) of the item, both on each line.


Here's some Ruby code that may do what you're interested in:

====

d1 = open("f1.txt") do |f|
f.readlines.map { |line| line.chomp }
end

d2 = open("f2.txt") do |f|
f.readlines.map { |line| line.chomp }
end

d3 = [d1, d2].transpose

p d1, d2, d3 # just so you can see what's happened so
far

d3.each do |str1, str2|
puts "This is the #{str1} (#{str2}) item."
end

====

That's assuming f1.txt contains "first", "second", etc., one per line
and that f2.txt contains "1st", "2nd", etc., one per line.

Eric

====

Are you looking for on-site Ruby or Ruby on Rails training
that's been highly reviewed by former students?
http://LearnRuby.com
 
Reply With Quote
 
Robert Klemme
Guest
Posts: n/a
 
      08-13-2008
2008/8/12 Toki Toki <(E-Mail Removed)>:
> Is it possible to use ruby like awk, sed or cut in unix to editing
> strings?


These are quite different tools but yes, you can use Ruby like them
most of the time. Please also have a look at command line parameters
of the Ruby interpreter (ruby -h).

> Let say I have to write INSERT query like this:
>
> This is the first (1=B0) item.
> This is the second (2=B0) item.
> This is the third (3=B0) item.
> ...


This does not look like an SQL INSERT statement, what is it?

> In one file I have the word-number (first, second, third) and in another
> file I have the real number (1=B0, 2=B0, 3=B0) of the item, both on each =

line.

Not sure what exactly you are trying to do. For the loading part
here's another variant:

h =3D {}

File.open "f1.txt" do |io1|
File.open "f2.txt" do |io2|
io1.zip io2 do |k,v|
h[k.chomp] =3D v.chomp
end
end
end

p h

> Of course, I don't want to really write it, so how can I "edit" the
> number of the item dinamically? I've tried with regex, but I haven't
> found a solution...
>
> I think that with some text editors maybe it's possible to do that, but
> I would like to know if with ruby the result can be achieved easier.


Well, if you tell us what exactly you are trying to achieve. At least
to me it's not fully clear.

Kind regards

robert

--=20
use.inject do |as, often| as.you_can - without end

 
Reply With Quote
 
Toki Toki
Guest
Posts: n/a
 
      08-17-2008
Eric I. wrote:

> Here's some Ruby code that may do what you're interested in:
>
> ====
>
> d1 = open("f1.txt") do |f|
> f.readlines.map { |line| line.chomp }
> end
>
> d2 = open("f2.txt") do |f|
> f.readlines.map { |line| line.chomp }
> end
>
> d3 = [d1, d2].transpose
>
> p d1, d2, d3 # just so you can see what's happened so
> far
>
> d3.each do |str1, str2|
> puts "This is the #{str1} (#{str2}) item."
> end
>
> ====
>
> That's assuming f1.txt contains "first", "second", etc., one per line
> and that f2.txt contains "1st", "2nd", etc., one per line.
>
> Eric
>
> ====



Thanks a lot for the code, it works great and it's really clear.

Best regards.
--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Activa or not activate a button column depending if another data column has data or not carlos perez ASP .Net 0 06-08-2004 02:16 PM
Add column to the last column of Datagrid Hai Nguyen ASP .Net 0 01-16-2004 10:10 PM
Is there a method to fetch the last value stored in a DB column with out having to read in the entire column? DeWitt Phillips ASP .Net 2 12-12-2003 11:29 AM
How to bind a db image column (byte array) to a datagrid column? Jim Hammond ASP .Net 1 11-26-2003 12:55 AM
Templated column cannot access datasource column ASP .Net 2 11-10-2003 03:58 PM



Advertisments