I have a project that requires data from a csv file to be manipulated into a new csv file. While some of the manipulation is simply straight mapping of data from the input csv to the output csv, the more complex part of the project is the dynamic IF statement requirement for some mappings. For this, the project requires some mappings to execute a series of IF..THEN..ELSE statements but the kicker is the user should be in full control of these statements. By full control, I mean each mapping should be visible to the user and he can add, subtract, or modify IF clauses per mapping. Is this possible in .Net and if so, how would I go about doing it? Examples are appreciated.
-Thank you |
| rsine Tuesday, November 24, 2009 6:39 PM |
I have a project that requires data from a csv file to be manipulated into a new csv file. While some of the manipulation is simply straight mapping of data from the input csv to the output csv, the more complex part of the project is the dynamic IF statement requirement for some mappings. For this, the project requires some mappings to execute a series of IF..THEN..ELSE statements but the kicker is the user should be in full control of these statements. By full control, I mean each mapping should be visible to the user and he can add, subtract, or modify IF clauses per mapping. Is this possible in .Net and if so, how would I go about doing it? Examples are appreciated.
-Thank you - Merged byMartin Xie - MSFTMSFT, Moderator21 hours 48 minutes agoMerge it to keep them in the same topic.
-
|
| rsine Tuesday, November 24, 2009 4:22 PM |
" Is this possible in .Net and if so, how would I go about doing it? Examples are appreciated. " Of course it is possible, but I think you already knew that. You should ask questions more specific to the .NET library classes on this forum. Or you could try one of the VB forums . Posting code always helps, no matter which forum you are on. Describing any error messages is good, too. "Error message blahblahblah on this line that says blah." Is this homework? (Sorry, had to ask...for your own benefit.) Rudy =8^D
Mark the best replies as answers. "Fooling computers since 1971."
|
| Rudedog2 Tuesday, November 24, 2009 5:29 PM |
I guess all things are possible in .Net but I am clueless about how to proceed with doing this particular project. Thus, I do not have anycode or error messages since I have not even begun orknow where to start. I was hoping to get some direction. Since you think this is the wrong forumto get such direction, I posted again to the VB forum.
-Thank you
P.S.
Not homework. Real honest to goodness business project. |
| rsine Tuesday, November 24, 2009 6:44 PM |
No the user has in VB Net no control on commands like IF Then and Else.
VB Net is not a kind of scripting language. Everything is build to CLI code and that is processed by the framework.
This is by the way like everyNet program language like C#, VB for Net and C++ for Net.
But also with other managed languages like Java.
Success Cor |
| Cor Ligthert Tuesday, November 24, 2009 7:01 PM |
While that is true, you could precode some fixed logic that uses variables that the user can then modify, which is the same thing. The logic is not dynamic....the data is.
Providing the user with a screen that enables them to set the variables answers your requirement. I think your requirement is not stated succinctly enough, because someone thinks you need to write a compiler, and all you need is to write a logic framework that supports the variables in question, then provide a GUI to set up the variables. |
| jinzai Tuesday, November 24, 2009 7:16 PM |
Jinzai,
Are you a sales guy?
If not I assume you are missing a carriere, in the way you write it is something of 2 hours work.
:-) Success
Cor |
| Cor Ligthert Tuesday, November 24, 2009 7:24 PM |
Duplicate post. f1a8c108-500f-420d-9acc-da626e2cd900#2cf6bcdf-a7e6-47e3-b954-ca1ea62299c3 Moderator, please merge.
Mark the best replies as answers. "Fooling computers since 1971." |
| Rudedog2 Tuesday, November 24, 2009 7:33 PM |
No, I can't sell anything. (I was trying to agree with you, however!)
I'm not sure exactly what is the matter with me these days. (Aside from trying to learn WCF/WPF alongwith IIS and ASP.NET) I really misss MFC/Win32. |
| jinzai Tuesday, November 24, 2009 7:35 PM |
VB Forum Thread 7a8f4c90-3d42-472e-b24a-218204f23159
Mark the best replies as answers. "Fooling computers since 1971."
|
| Rudedog2 Tuesday, November 24, 2009 7:36 PM |
store these criteria in database and build your IF statements based on available criteria in DB. kashif |
| Kpbutt Tuesday, November 24, 2009 9:35 PM |
Here is one of the initial IFs given to me as an example of what needs to be done during mapping:
If D1 = 10 then Image = "save-10.tif" else If D1 = 20 then image = "save-10.tif" else image = "" end if end if
This is a straight forward enough IF to write into the application.The wrinkle thrown into the project is wanting to be able to write future IFs without requiring code changes. The idea is to havesome meansbe programmed toallow the user tomodify IFs at will.For example, the image IF might have a need to be updated with an "IF D1 = 30 Then ..." statement.
In my mind, I am imagining this project having something akin to how Excel lets someone write IF statements tomanipulate data. Excel stores these IFs and everytime the spreadsheet is opened the IF executes. The user can also update the IFs and save so that future viewers of the spreadsheet see the results of the newly modified IFs.Is doing something like that easily accomplished in .Net? |
| rsine Tuesday, November 24, 2009 9:52 PM |
|
| Acamar Tuesday, November 24, 2009 10:46 PM |
So as in your example above if you stored valid image values in a list you could have a form that had all values and they could check the ones that were valid tiff values. Then one if statement could check a dynamically created list of valid image values
I think that was the point Jinzai was trying to make.
kINDa lIKe tHIs:
Public Class Form1
'Store the Vaild Image vaules for D1
Private mImageValues As List(Of Integer)
Public Property ImageValues() As List(Of Integer)
Get
If mImageValues Is Nothing Then
mImageValues = New List(Of Integer)
End If
Return mImageValues
End Get
Set(ByVal value As List(Of Integer))
mImageValues = CType(value, List(Of Integer))
End Set
End Property
Private Sub StartIfs_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim D1 As Integer
Dim ImageName As String
If Integer.TryParse(Me.Controls("txtD1Values").Text, D1) = False Then
MessageBox.Show("Not an Integer", "Data Error", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If
'does the list contain the value?
If ImageValues.Contains(D1) Then
ImageName = String.Format("save-{0}.tif", D1)
Else
ImageName = String.Format("Don't Save {0}", D1)
End If
Me.Text = ImageName
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal _
e As System.EventArgs) Handles Me.Load
LoadControlsAtRunTime()
End Sub
'Below code is for loadding controls at runtime so
'you don't have to... :-)
Private Sub LoadControlsAtRunTime()
Dim newList As New CheckedListBox
With newList
.Height = Me.Height * 0.66
.Dock = DockStyle.Bottom
.CheckOnClick = True
'Possible Image Values
.Items.Add(10)
.Items.Add(20)
.Items.Add(30)
.Items.Add(40)
.Items.Add(50)
.Items.Add(60)
End With
AddHandler newList.ItemCheck, AddressOf ImageValues_ItemCheck
Me.Controls.Add(newList)
Dim newButton As New Button
With newButton
.Text = "Start If's"
.Location = New Point(5, 5)
End With
AddHandler newButton.Click, AddressOf StartIfs_Click
Me.Controls.Add(newButton)
Dim newText As New TextBox
With newText
.Name = "txtD1Values"
.Text = "10"
.Location = New Point(newButton.Right + 5, newButton.Top)
End With
Me.Controls.Add(newText)
End Sub
Private Sub ImageValues_ItemCheck(ByVal sender As Object, _
ByVal e As System.Windows.Forms.ItemCheckEventArgs)
Dim CheckedList As CheckedListBox = CType(sender, CheckedListBox)
Dim D1 As Integer = CheckedList.Items(e.Index)
Select Case True
Case e.NewValue = CheckState.Checked AndAlso ImageValues.Contains(D1) = False
ImageValues.Add(D1)
Case e.NewValue = CheckState.Unchecked AndAlso ImageValues.Contains(D1)
ImageValues.Remove(D1)
End Select
End Sub
End Class
|
| TechNoHick Tuesday, November 24, 2009 11:50 PM |
Public Interface ICondition Function TestCondition(ByVal input As String) As Boolean End Interface
Public Delegate Function Test() As Boolean
Public Interface IPerformAction Sub PerformAction(ByVal test As Test) End Interface
Public Interface ITestStrategy : Inherits ICondition, IPerformAction
End Interface
Public MustInherit Class TestConditons : Implements ITestStrategy Private condition As ICondition Private test As IPerformAction Public Sub New(ByVal condition As ICondition, ByVal test As IPerformAction) Me.condition = condition Me.test = test End Sub Public Function TestCondition(ByVal input As String) As Boolean Implements ICondition.TestCondition Return condition.TestCondition(input) End Function
Public Sub PerformTest(ByVal test As Test) Implements IPerformAction.PerformAction test.Invoke() End Sub End Class
Hope this starts a brainstorm.
Rudedog =8^D
Mark the best replies as answers. "Fooling computers since 1971."
|
| Rudedog2 Wednesday, November 25, 2009 12:20 AM |
I see where you are going with this code and think it would work except for the image name may not always be save-##.tif. For example, the additional IF to be added could be:
If D1 = 30 Then image = big.tif end if
Beyond that, the project is looking for the flexibility to change the IF statements to something like this:
If (D1 = 10or D1 = 20)and BusinessName <> ""and FullName <> "" then Image = "save-10.tif" else If D1 = 20 then IFBusinessName <> "" and FullName = "" then image = BusinessName & ".tif" else image = FullName & ".tif" else image =Field5 & Field6 & ".tif" end if end if
The project is looking to have the functionality to extend the IFs to have OR and AND clauses and possibleconcatenations. As RudeDog2 outlines, there needs to be a routine that allows a value to be passed but in that routine, there needs to be a means to execute IF statements that are not native to the routine if that makes sense.
|
| rsine Wednesday, November 25, 2009 1:07 PM |
A solution would become more apparent if you re-wrote your logic to use Select/Case instead of If/Then/Else. Select statements are more easiily translated into OOP Design Patterns like the State, Decorator, or Strategy Patterns. The sample I posted could serve as the base types for an implementation of any of those similar patterns. Those patterns differ mainly in their 'intent' of how an object's behaviors are modified at runtime. @rsine, your last post amounted to a slight, yet significant change from your original specification. You will not get any really beneficial or concrete suggestions until you nail down and define some limits on what goes in and what you need to come out of this system. I see a combination of patterns that could be used but I have no concrete ideas because I have no concrete target that I am trying to hit. Rudy =8^D
Mark the best replies as answers. "Fooling computers since 1971."
|
| Rudedog2 Wednesday, November 25, 2009 2:11 PM |
I will just mention this to see if it gives any spark to something and then i have to get out of this one. Sounds like one that will cause some heavy brain usage that i don't have available this morning. :-) I see why TechNoHick was thinking about lists. At first i was thinking of something similar in a way. i think depending on your real needs here, you might start thinking in terms of "Assmeblies" of conditions. For example when i used to do construction estimation: we had the abillity to choose from individual items to combine together into a group that made up a larger single item. So assembled together it made one complete assembled item. That assembled item could have any number of individual items or smaller groups of items. Not sure if you will see how that might apply and in the end it may not to your situation, but i was thinking maybe you are possibly thinking too much in terms of the code being dynamic instead of the data itself. You should be able to assemble groups of conditions at runtime and compare them to the user input. ok, well i am out of this one now. brain can't handle it. :-) FREE DEVELOPER TOOLS, CODE & PROJECTS at www.srsoft.us Database Code Generator and Tutorial |
| Jeff - www.SRSoft.us Wednesday, November 25, 2009 2:20 PM |
Jeff, That crazy spark of yours is not as crazy as you make it sound. You just pretty much described the Composite Pattern , which stores data in a tree-like structure. Windows Forms controls are a textbook example of Composite, with the Control.Controls collection. The Composite Pattern is exactly what I had in mind above when I mentioned combinations of patterns. Objects that implemented the ICondition interface could have a collection of ICondition objects, just like Control.Controls.
Mark the best replies as answers. "Fooling computers since 1971." - Edited byRudedog2 Wednesday, November 25, 2009 8:21 PM
-
|
| Rudedog2 Wednesday, November 25, 2009 2:30 PM |
Why don't we use text file ? Low teach method but easy.
_______File.txt__________ 10:save-10.tif 20:save-10.tif 30:save-20.tif ______________________
Using File As New StreamReader("File.Txt") Do Until File.EoF Dim Line = File.Readline.Split(":") IfLine.Length> 1AndAlsoD1 = Cint( Line(0) ) Then Image = Line(1) : Exit Do Loop End Using |
| Richter03 Wednesday, November 25, 2009 2:59 PM |
Why don't we use text file ? Low teach method but easy. _______File.txt__________ 10:save-10.tif 20:save-10.tif 30:save-20.tif ______________________ Using File As New StreamReader("File.Txt") Do Until File.EoF Dim Line = File.Readline.Split(":") IfLine.Length> 1AndAlsoD1 = Cint( Line(0) ) Then Image = Line(1) : Exit Do Loop End Using
Believe or not, that is essentially what my suggestion is doing. What you have demonstrated could be viewed as the Command Pattern. Each line of your text file could become an object in code. A command object. This command object has predefined methods so that you could invoke the object to perform its' task. The interfaces, ITestStategy, that I posted above would be implmented by a class that would be defined by one line of your code. I just added additional interfaces to describe the parameters that make up the object. This allows for different types of classes to describe different types of filters or actions. The ITestStrategy or command object would be instantiated at runtime with dynamically defined behaviors.
Mark the best replies as answers. "Fooling computers since 1971."
|
| Rudedog2 Wednesday, November 25, 2009 3:38 PM |
Basically, the project was outlined to me as needing:
1) Construct a new csv using data from an old csv file
2) Some data would map from the old csv file to the new csv file unaltered but possibly in new location (i.e. field A in old csv file maps to field B in newly created csv file)
3) Some data from the old csv file would map to the new csv but be altered based on conditions. For example, field A in old csv file might have value of "10" and via IF statements, the value mapped to the new csv file would be "someimagenaem.tif".
4) If statements should be viewable and alterable by the user and not require a developer to modify IF statements.
5) Some mappings will require values in the old csv to be concatenated together and become a single value in the new csv.
The sticking point for me is number 4. The best comparable I have to that is what Excel does for IF statements. It allows the user to construct and modifyIFs at will. I was hoping there was a means in.Net to do something similar.
Hopefully this helpsdirect your thoughtsas I am at a loss on how to go about this. |
| rsine Wednesday, November 25, 2009 8:13 PM |
Using a text file or databasewas a thought I had but I cannot figure out how to make it work well for the more ellaborate scenarios of IFs with AND and OR. Basically, theproject is looking to duplicate what Excel can do wherein a user can modify and create IF statements without requiring a developer. |
| rsine Wednesday, November 25, 2009 8:18 PM |
Using a text file or databasewas a thought I had but I cannot figure out how to make it work well for the more ellaborate scenarios of IFs with AND and OR. Basically, theproject is looking to duplicate what Excel can do wherein a user can modify and create IF statements without requiring a developer.
... Re-think the problem as if they were Select/Case statements instead of If/Then/Else statements. ..... Re-write your posted examples, and you notice something after a while. There is no difference between this ...... Dim test1 as SomeObject ' this class inherits TestConditions above Dim test2 as SomeObject ' this class inherits TestConditions above Public Sub Method2(ByVal condition As String) Select Case (condition) Case "TKey_1" test1.PerformAction(condition) ' yeah yeah I know, the type doesn't match Case "TKey_2" test2.PerformAction(condition) ' yeah yeah I know, the type doesn't match End Select End Sub ... and this .... Dim methodInvoker as Dictionary(Of String, ITestStrategy) ' Public Sub Method1(ByVal condition As String) methodInvoker(condition).PerformAction(condition) ' yeah yeah I know, the type doesn't match End Sub ...except one is hard coded, and the other can be modified dynamically. It is much harder to translate If/Then/Else blocks into the Strategy Pattern. Rudy =8^D
Mark the best replies as answers. "Fooling computers since 1971." |
| Rudedog2 Wednesday, November 25, 2009 8:33 PM |
A couple of thoughts come to mind: 1) use windows work flow foundation to build a rules based processor. You can describe rules using basically a dialect of xaml - which is xml. Your users can modify that, or you could build your own interface for editing. Also, it's possible to embed the work flow designers into your own applications, so that maybe a possibility as well depending on what you are trying to accomplish. 2) Use something like the command pattern to build your processing engine. You could allow the users to alter if statements, and then use the codedome to compile the logic into a dll. As long as you have a known interface, your processor could load the dll dynamically and just call the methods - and not have to know anything about the logic. Anyway, these are just a couple of rough ideas :) both would take some work, and without a bit more knowledge it's hard to formulate anything better on the fly. But, who knows, maybe investigating one of these possibilities may open up doors that lead you to your goal :) Tom Shelton |
| Tom Shelton Wednesday, November 25, 2009 8:38 PM |
Hi,
Yeah the suggestion to use a lookup table is a good idea. These are great for simplifying if statements... I don't think simplification is whats wanted here.
The unfortunate thing with .NET is there is no Eval method. Eval makes it reasonably easy to do this sort of thing..... if it was me! What I would do is I'd use the IronPython engine (the DLR) as a way to allow the user to add scripts to the application, thats essentially what your looking to do your user is changing the behaviour of the application in the same way VBA is used to change the behaviour of Excel.
Someone suggested writing a compiler, this isn't all that difficult but it is A LOT OF WORK!! Even with tools like Lex and the other one.... yacc.
What IronPython gives you is that compiler!! Its the IronPython engine.... it also lets you run the code so it's an interperator as well. Only condition is the user writes Python code!! and if your talking IF statements then thats not exactly going to make them kack their pants.
Thats what I would do if users had to write or change parts of the software.
This wouldn't be a great deal of effort. |
| Derek Smyth Wednesday, November 25, 2009 9:05 PM |
Still not understanding exactly what you're suggesting.I know I could re-write IFs asnestedSelects but I am not sure how that gets me to dynamic code. Wouldn't I ultimately be running into the same issue when a newSelect Case needsadded? For example, suppose my original Select Case was:
Select Case D1 Case 10 image = someimagename.tif Case 20 image =anotheimagename.tif End Select
Howdoes the user a month later transform that initial Select Case to this:
Select Case D1 Case 10 Select Case BusinessName Case String.Empty Select Case FullName Case String.Empty image ="somedefaultimage.tif" Case Else image = FullName & ".tif" End Select Case Else Select Case FullName CaseString.Empty imagename = BusinessName & ".tif" Case Else imagename = FullName & ".tif" End Select End Select Case 20 image ="anotheimagename.tif" End Select
My apologies but I am just not understanding how the user is suppose to be able to do this using Select Cases (or IFs) dynamically. |
| rsine Thursday, November 26, 2009 10:45 AM |
Do you have an example of your first suggestion? Using a rules engine was another thought I had. While I have seen applications that have such engines, I have never done one myself or seen any code on how to. |
| rsine Thursday, November 26, 2009 10:48 AM |
If your using .NET 3+ you don't have to build a rules engine - there is already one there. It's part of Windows Workflow Foundation. Here are a whole set of basic tutorials to get started: http://msdn.microsoft.com/en-us/library/ms735927.aspx . Those only scratch the surface, I would also look for a good book. I've enjoyed "Pro WF" by Bruce Bukovics - but, there are a lot of others out there :)
Tom Shelton |
| Tom Shelton Thursday, November 26, 2009 3:45 PM |
Tom,
I have never used WF before but I am open to learning if it is the right way to proceed. The time horizon is very short for completion of this project (i.e. within 3 weeks). Thus, I was hoping someone had done this type of work before but it seems I am somewhat trail blazing here. |
| rsine Monday, November 30, 2009 9:28 PM |
|
| Derek Smyth Monday, November 30, 2009 10:27 PM |
Hmmm... I didn't think of it before - but Derek makes a good point about embedding a scripting langauge. Another possibility, beyond ironpython/ruby is actually to make use of the JScript.NET runtime - it's been part of the framework since day one. I have used JScript to do simple run time evaluation of mathematical expressions ... But, you could adapt the technique for other purposes :) Anyway, another option to think about...
Tom Shelton |
| Tom Shelton 13 hours 23 minutes ago |
Okay, now we have a detailed description of the problem. Anyone ever use MS Access to import a csv file? It uses a wizard that does almost exactly what the OP is asking for. This is what I recall from each page of the Import Wizard. 1. It allows you to read in text file while specifying a delimiter. In this case, comma. 2. It attempts to read the file, and display for you a datagrid of column names. You could also specify whether or not the first record contains column names or data. 3. You can manually name the columns/fields in the existing file and select which ones you wish to import. 4. It allows you to name the fields in the soon to be created new table. It attempts to show you how the imported file/table would look. 5. Confirm everything and all of your settings. 6. Click 'Import" and a new table is generated. Rudy =8^D
Mark the best replies as answers. "Fooling computers since 1971."
|
| Rudedog2 13 hours 10 minutes ago |
What about an approach similar to the Excel Conditional Formating ?
You can create a library of function that correspond to IF, OR, AND, ... or anything you need
To create the logical link between these function, you can make a list of delegate that are called one after the other in the logical order created by the user.
If some intermediate field are required, it is easy to use "Emit" to get them
|
| Crazypennie 11 hours 26 minutes ago |
Basically, the project was outlined to me as needing: 1) Construct a new csv using data from an old csv file 2) Some data would map from the old csv file to the new csv file unaltered but possibly in new location (i.e. field A in old csv file maps to field B in newly created csv file) 3) Some data from the old csv file would map to the new csv but be altered based on conditions. For example, field A in old csv file might have value of "10" and via IF statements, the value mapped to the new csv file would be "someimagenaem.tif". 4) If statements should be viewable and alterable by the user and not require a developer to modify IF statements. 5) Some mappings will require values in the old csv to be concatenated together and become a single value in the new csv. The sticking point for me is number 4. The best comparable I have to that is what Excel does for IF statements. It allows the user to construct and modifyIFs at will. I was hoping there was a means in.Net to do something similar. Hopefully this helpsdirect your thoughtsas I am at a loss on how to go about this.
Okay, here are the conditions posted by the OP. It seems to me it should be fairly straight forward---but tedious---to create a control that displays a list of "If String Values" and "Then String" values. Something like a 2 column table---datagridview?---would do it. Each column in the original file could have its' own mapping table/dgv, where the user could add/modify new entries. You could even give the user a preview type of screen of the new file. It would not have to display actual data, but rather a summary of what comprises each column in the new table. Describe whether or not it is a straight mapping, or a mapping with a custom lookup table as described above. Rudy =8^D
Mark the best replies as answers. "Fooling computers since 1971."
|
| Rudedog2 11 hours 19 minutes ago |
Crazypennie,
I think the Excel approach is what the Project requestor is thinking. However, I am lost about how to go about doing it. Everyone is posting possible solutions which I do appreciate but as a semi-novice .Net programmer, an example would be really helpful. |
| rsine 8 hours 58 minutes ago |
I will give you an exemple of what I am thinkingtomorrow, Today I have 14 hrsof codingdone and acouple more to go !
And a headache
Hopefully I will be able to help you
|
| Crazypennie 7 hours 20 minutes ago |
Thus, I was hoping someone had done this type of work before but it seems I am somewhat trail blazing here.
Hi rsine. I have actually done something very similar to this before (sorry - just picked up this thread, been busy lately). It was a non-work project that tried to create a mashup between a DTS and Excel. Briefly, it could read data from multiple source formats into a virtual grid where the user could thenmaniluate the data (in Excel fashion)before exporting into one of multiple formats. Nothing too ground-breaking there except that I had functionality in place for the user to dynamically create nested conditional statement that could be used for filtering or editing -- stuff like "Remove all punctuation in cells where the cell 2 to the right contains numbers". This may sound way too over-complicated but in my job I wasdoing a lot of parsing out and cleaning up excel or text files where the Excel formulas just didn't cut it (or I hadn't the patience to become an Excel formula guru). So I built a nesting conditional rules engine very similar to what Rudy was describing with the Composite Pattern and with his simplified interface code example. Since my code is very lengthy and is tilted toward assessing cell values I can't really post it here and make it meaningful -- as with Crazy Penny, if I get a chance to make a simpler version then I'll try to post it. In the meantime here's some screen shots of the app. In the first one I have opened the Edit dialog where you can see a tree depiction of the nesting. A cluster can contain query expressions ("cluster" indicating they chain byAnd/AndAlso,Or,OrElse) or otherclusters. Hovering over the query element will produce the parsed"english" version of the condition - I thought this would be easier for the user - and the Parse button allows them to see the entire statement.  So the main editscreen abovesays what edit will be, while each "query element", or conditional expression, in the tree has its own edit dialog, as shown below (which parses to the tool tip above):  So I think this is similar to the logical framework that you are asking for. I have a very simpleIQueryPart interface, an implementingQueryElement class, and a QueryCluster class that is a collection of QueryElement objects. Here's thebasic trio in diagram form - not sure if its of any use, but I thought I'd throw it in...  I'm a bit unclear as to what the content of these CSV files is... it sounds like points of data but your examples are dealing with image file paths. If I (or another here)were to boil some code down into something useful for you it would help if you gave a real-world example of how your data needs to get parsed and reformatted. EDIT: Ha! Just noticed I have a method called " Asses" instead of "Assess". Sounds like the making of a good geek joke - somethinghaving to do with asses and interfaces :) |
| Dig-Boy 4 hours 51 minutes ago |