List Icon
Mailing list Archive

2019 up to July 2022 | 20182017  |  2016  2015 2014 | 2013

The mailing list has been closed since July 2022, but continues to serve as an archive of information about QF-Test.
But if you want to stay informed about news about QF-Test, you can simply
Subscribe to Newsletter  

To get up-to-date information about each release - including minor releases - you can
subscribe to the RSS feed or follow us on social media.
Alternatively, QF-Test also provides release information itself.

Another source of information is our blog, where there are current articles on general topics, on the company QFS and also various "how-tos"
subscribe to blog


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [QF-Test] How do I update and existing value in a CSV file?


  • Subject: Re: [QF-Test] How do I update and existing value in a CSV file?
  • From: "Yann Spoeri, QFS Support" <support@?.de>
  • Date: Mon, 24 Sep 2018 09:54:11 +0200
  • Delivered-to: qftest-list@?.net

Hi everyone,

In order to update a value in an existing CSV file, you first need to read in the file the complete file, then change the wanted value and then
write everything out ... so - in jython/python, this is looking something like this:

import csv
newCSVData = []
with open(r'C:\temp\foo.csv', 'rb') as csvfile:
    reader = csv.reader(csvfile, delimiter=';')
    for row in reader:
        if row[0] == 'CIVPart1': # the value to search
            row[1] = str(int(row[1]) + 1)
        newCSVData.append(row)
with open(r'C:\temp\foo.csv', 'w') as csvfile:
    for line in newCSVData:
        csvfile.write(";".join(line))
        csvfile.write("\n")

The same in groovy (Please note that the groovy csv parser expect a "," instead of a ";" as delimiter):

import org.apache.commons.csv.CSVParser;

def newCSVData = []
parser = new CSVParser(new FileReader("C:/temp/foo.csv"));
def fieldnames = parser.getLine();
newCSVData.add(fieldnames)
for(int i = 0; i < parser.getLineNumber(); i++) {
    vals = parser.getLine();
    if(vals != null) {
        if(vals[0] == "CIVPart1") {
            vals[1] = "" + (vals[1].toInteger() + 1)
        }
        newCSVData.add(vals)
    }
}
def file = new File("C:/temp/foo.csv");
file.newWriter();
for(vals in newCSVData) {
    file << vals[0] << "," << vals[1] << "\n";
}

Greetings & Happy testing,
    Yann

Am 20.09.2018 um 04:23 schrieb Mike Harper:
Hi,

I am very new to QF-Test, Groovy, JavaScript etc. and am finding it incredibly difficult finding out how I can update an existing value in a CSV
file.

I have searched the archives but can't find anything that shows me how to do this.

My test uses a CSV Data File to pull in the CSV file values.
The CSV data contains two rows:
CIVPart1;CIVPart2
CIV-2018-025-;000001

These values are strung together then a SQL statement is used to see if the full CIV Number can be found in the Database.

If found to exist, I add 1 to the CIVPart2 value and check again - doing this until a record is not found in the database.

I then need to add 1 to the calculated CIVPart2 value and write it back to the CIV file so that when the test runs again, the SQL statement
won't reuse values that have already been proven to exist.

I am thinking I need to use aServer Script to achieve the required result. Have been using Groovy to date.

So, can someone step me through the coderequired to update the existing CSV file so that it contains the new value please? (Am almost bald from
pulling my hair out)

Thanks in advance for your help.

Mike



_______________________________________________
qftest-list mailing list
qftest-list@?.de
https://movement.qfs.de/mailman/listinfo/qftest-list

--
_______________________________________________________________

Get the most out of QF-Test - Support directly from the authors
* Training & consulting: www.qfs.de/en/qftest/training.html
* Phone & email support: www.qfs.de/en/qftest/support.html
_______________________________________________________________

Yann Felix Spöri
Support

E: support@?.de
T: +49 8171 38648-20
F: +49 8171 38648-16

Quality First Software GmbH | www.qfs.de
Tulpenstr. 41 | 82538 Geretsried | Germany
GF Gregor Schmid, Dr. Martina Schmid, Karlheinz Kellerer
HRB München 140833