Hi all, I want to process a variable, signum2, which is picked up from a MySQL database. The content of the variable is "B006". The aim is to process this variable so the result will be "B007" and it will then be saved as part of a new record in the database. The core process is to increment the integer part of the variable "006" with 1. I have successfully done this incrementation but I have not been able to create a new correct content for the new varable new_xyz. <dtml-call "REQUEST.set('signumfix2',signum2[1:4])"> <dtml-call "REQUEST.set('signumfix2', _.int(signumfix2)+1)"> How can I from here create the correct content of the new variable? I need to bring the "B" part with me and then the incremented integer part formatted with two preceeding zeroes. Does anyone know? Best regards, Ebbe Kvist Stockholm <P><p><font face="Arial, Helvetica, sans-serif" size="2" style="font-size:13.5px">_______________________________________________________________<BR>Hitta kärleken med hjälp av vårt matchningstest - <a href="http://spray.matchaffinity.se/?mtcmk=614114">Klicka här!</a></font>
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Firstly, why DTML? Secondly, write a browser view or your app logic into a Python Script and use a ZPT for calling the script and rendering the result. Such code as seen below makes us shiver. Andreas Ebbe Kvist wrote:
Hi all,
I want to process a variable, signum2, which is picked up from a MySQL database. The content of the variable is "B006". The aim is to process this variable so the result will be "B007" and it will then be saved as part of a new record in the database. The core process is to increment the integer part of the variable "006" with 1.
I have successfully done this incrementation but I have not been able to create a new correct content for the new varable new_xyz.
<dtml-call "REQUEST.set('signumfix2',signum2[1:4])"> <dtml-call "REQUEST.set('signumfix2', _.int(signumfix2)+1)">
How can I from here create the correct content of the new variable? I need to bring the "B" part with me and then the incremented integer part formatted with two preceeding zeroes. Does anyone know?
Best regards,
Ebbe Kvist Stockholm
_______________________________________________________________ Hitta kärleken med hjälp av vårt matchningstest - Klicka här! <http://spray.matchaffinity.se/?mtcmk=614114>
------------------------------------------------------------------------
_______________________________________________ Zope maillist - Zope@zope.org https://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - https://mail.zope.org/mailman/listinfo/zope-announce https://mail.zope.org/mailman/listinfo/zope-dev )
- -- ZOPYX Limited | zopyx group Charlottenstr. 37/1 | The full-service network for Zope & Plone D-72070 Tübingen | Produce & Publish www.zopyx.com | www.produce-and-publish.com - ------------------------------------------------------------------------ E-Publishing, Python, Zope & Plone development, Consulting -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkxlcNYACgkQCJIWIbr9KYzwqwCfeFrBsPilwyn1AcKhpE0e6hL8 M1gAn1AWaZf00EVOnAQYIGNfiy5vZLKw =NAMv -----END PGP SIGNATURE-----
Something like: <dtml-call "REQUEST.set('signumfix2', signum[0:1] + _.str(_.int(signum[1:4])+1)"> wont work because you will turn B006 into B7 If you want to retain the leading zeros you will need to pad them. As Andreas said, this would be better done using a python script (which you can call from dtml you dont have to use zpt). Jonathan From: zope-bounces@zope.org [mailto:zope-bounces@zope.org] On Behalf Of Ebbe Kvist Sent: August-13-10 12:17 PM To: zope@zope.org Subject: [Zope] string formatting Hi all, I want to process a variable, signum2, which is picked up from a MySQL database. The content of the variable is "B006". The aim is to process this variable so the result will be "B007" and it will then be saved as part of a new record in the database. The core process is to increment the integer part of the variable "006" with 1. I have successfully done this incrementation but I have not been able to create a new correct content for the new varable new_xyz. <dtml-call "REQUEST.set('signumfix2',signum2[1:4])"> <dtml-call "REQUEST.set('signumfix2', _.int(signumfix2)+1)"> How can I from here create the correct content of the new variable? I need to bring the "B" part with me and then the incremented integer part formatted with two preceeding zeroes. Does anyone know? Best regards, Ebbe Kvist Stockholm _______________________________________________________________ Hitta kärleken med hjälp av vårt matchningstest - Klicka här! <http://spray.matchaffinity.se/?mtcmk=614114>
def inc(s): id, count = (s[:1], int(s[1:4])) count += 1 return '%s%03d' % (id, count) -- Jeffrey D Peterson Webmaster Crary Industries, Inc. From: zope-bounces@zope.org [mailto:zope-bounces@zope.org] On Behalf Of Ebbe Kvist Sent: Friday, August 13, 2010 11:17 AM To: zope@zope.org Subject: [Zope] string formatting Hi all, I want to process a variable, signum2, which is picked up from a MySQL database. The content of the variable is "B006". The aim is to process this variable so the result will be "B007" and it will then be saved as part of a new record in the database. The core process is to increment the integer part of the variable "006" with 1. I have successfully done this incrementation but I have not been able to create a new correct content for the new varable new_xyz. <dtml-call "REQUEST.set('signumfix2',signum2[1:4])"> <dtml-call "REQUEST.set('signumfix2', _.int(signumfix2)+1)"> How can I from here create the correct content of the new variable? I need to bring the "B" part with me and then the incremented integer part formatted with two preceeding zeroes. Does anyone know? Best regards, Ebbe Kvist Stockholm _______________________________________________________________ Hitta kärleken med hjälp av vårt matchningstest - Klicka här!<http://spray.matchaffinity.se/?mtcmk=614114>
To be more flexible it should probably look more like this: def inc(s): import string id, count = (s[:1], s[1:]) count = string.zfill(str(int(count) + 1), len(count)) return '%s%s' % (id, count) That way even 'B00000006' would get incremented properly. -- Jeffrey D Peterson Webmaster Crary Industries, Inc. From: zope-bounces@zope.org [mailto:zope-bounces@zope.org] On Behalf Of Ebbe Kvist Sent: Friday, August 13, 2010 11:17 AM To: zope@zope.org Subject: [Zope] string formatting Hi all, I want to process a variable, signum2, which is picked up from a MySQL database. The content of the variable is "B006". The aim is to process this variable so the result will be "B007" and it will then be saved as part of a new record in the database. The core process is to increment the integer part of the variable "006" with 1. I have successfully done this incrementation but I have not been able to create a new correct content for the new varable new_xyz. <dtml-call "REQUEST.set('signumfix2',signum2[1:4])"> <dtml-call "REQUEST.set('signumfix2', _.int(signumfix2)+1)"> How can I from here create the correct content of the new variable? I need to bring the "B" part with me and then the incremented integer part formatted with two preceeding zeroes. Does anyone know? Best regards, Ebbe Kvist Stockholm _______________________________________________________________ Hitta kärleken med hjälp av vårt matchningstest - Klicka här!<http://spray.matchaffinity.se/?mtcmk=614114>
participants (4)
-
Andreas Jung -
Ebbe Kvist -
Jeff Peterson -
Jonathan (dev101)