Search Results

Search found 18319 results on 733 pages for 'array push'.

Page 26/733 | < Previous Page | 22 23 24 25 26 27 28 29 30 31 32 33  | Next Page >

  • weird result with c# winForms array of Lists

    - by jello
    so I'm trying to store values in an array of Lists in C# winForms. In the for loop in which I make the sql statment, everything works fine: the message box outputs a different medication name each time. for (int i = 0; i < numberOfMeds; i++) { queryStr = "select * from biological where medication_name = '" + med_names[i] + "' and patient_id = " + patientID.patient_id; using (var conn = new SqlConnection(connStr)) using (var cmd = new SqlCommand(queryStr, conn)) { conn.Open(); using (SqlDataReader rdr = cmd.ExecuteReader()) { while (rdr.Read()) { medObject.medication_date = (DateTime)rdr["patient_history_date_bio"]; medObject.medication_name = rdr["medication_name"].ToString(); medObject.medication_dose = Convert.ToInt32(rdr["medication_dose"]); medsList[i].Add(medObject); } } conn.Close(); MedicationTimelineClass medObjectx = medsList[i][0] as MedicationTimelineClass; MessageBox.Show(medObjectx.medication_name); } } but then, when I take the message box code out of the loop, meaning that the array of Lists is supposed to be populated, I always get the same value: the last value entered. the same medication name, no matter what number I put between those brackets. It's like if the whole array of Lists is populated with the same data. for (int i = 0; i < numberOfMeds; i++) { queryStr = "select * from biological where medication_name = '" + med_names[i] + "' and patient_id = " + patientID.patient_id; using (var conn = new SqlConnection(connStr)) using (var cmd = new SqlCommand(queryStr, conn)) { conn.Open(); using (SqlDataReader rdr = cmd.ExecuteReader()) { while (rdr.Read()) { medObject.medication_date = (DateTime)rdr["patient_history_date_bio"]; medObject.medication_name = rdr["medication_name"].ToString(); medObject.medication_dose = Convert.ToInt32(rdr["medication_dose"]); medsList[i].Add(medObject); } } conn.Close(); } } MedicationTimelineClass medObjectx = medsList[0][0] as MedicationTimelineClass; MessageBox.Show(medObjectx.medication_name); what's going on here?

    Read the article

  • Trouble with C# array

    - by Biosci3c
    Hi, I am writing a card playing program as a way of learning C#. I ran into an issue with an array going out of bounds. Here is my code: namespace Pcardconsole { class Deck { public Deck() { // Assign standard deck to new deck object int j; for (int i = 0; i != CurrentDeck.Length; i++) { CurrentDeck[i] = originalCards[i]; } // Fisher-Yates Shuffling Algorithim Random rnd = new Random(); for (int k = CurrentDeck.Length - 1; k >= 0; k++) { int r = rnd.Next(0, k + 1); int tmp = CurrentDeck[k]; CurrentDeck[k] = CurrentDeck[r]; CurrentDeck[r] = tmp; // Console.WriteLine(i); } } public void Shuffle() { // TODO } // public int[] ReturnCards() // { // TODO // } public int[] originalCards = new int[54] { 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x50, 0x51 }; public int[] CurrentDeck = new int[54]; } class Program { static void Main(string[] args) { // Create a Deck object Deck mainDeck = new Deck(); Console.WriteLine("Here is the card array:"); for (int index = 0; index != mainDeck.CurrentDeck.Length; index++) { string card = mainDeck.CurrentDeck[index].ToString("x"); Console.WriteLine("0x" + card); } } } The hexidecimal numbers stand for different cards. When I compile it I get an array index out of bounds error, and a crash. I don't understand what is wrong. Any help would be much appreciated.

    Read the article

  • PHP: Array of objects is empty when I come to retrieve one from the array

    - by Tom
    Good morning, I am trying to load rows from a database and then create objects from them and add these objects to a private array. Here are my classes: <?php include("databaseconnect.php"); class stationItem { private $code = ''; private $description = ''; public function setCode($code ){ $this->code = $code; } public function getCode(){ return $this->code; } public function setDescription($description){ $this->description = $description; } public function getDescription(){ return $this->description; } } class stationList { private $stationListing; function __construct() { connect(); $stationListing = array(); $result = mysql_query('SELECT * FROM stations'); while ($row = mysql_fetch_assoc($result)) { $station = new stationItem(); $station->setCode($row['code']); $station->setDescription($row['description']); array_push($stationListing, $station); } mysql_free_result($result); } public function getStation($index){ return $stationListing[$index]; } } ?> As you can see I am creating a stationItem object per database row (which for now has a code and description) and I then push these on to the end of my array which is held as a private variable in stationList. This is code which creates this classes and attempts to access the properties on them: $stations = new stationList(); $station = $stations->getStation(0); echo $station->getCode(); I am finding that the sizeof($stationList) at the end of the constructor is 1 but then it is zero when we come to try to get an object from the array using the index. Therefore the error that I get is: Fatal error: Call to a member function getCode() on a non-object Please can someone explain to me why this is happening? I guess I am misunderstanding how object references work in PHP5.

    Read the article

  • Return an Oracle Associative Array from a function

    - by Paul Johnson
    Does anybody know if it is possible to return an associative array as the result of an Oracle function, if so do you have any examples? I have an Oracle package which contains an associative array declaration as defined below: TYPE EVENTPARAM IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; This is then used in a stored procedure outside the package as follows: v_CompParams areva_interface.eventparam; The intention is to store an associative array of strings in the variable v_CompParams, returned from a Parse function in another package. The definition for which is as follows: PACKAGE STRING_MANIP IS TYPE a_array IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; FUNCTION Parse (v_string VARCHAR2, v_delim VARCHAR2) RETURN a_array; FUNCTION RowCount(colln IN a_array) RETURN NUMBER; END; The code which implements this is: v_CompParams := STRING_MANIP.PARSE(v_CompID,v_Delim); Unfortunately it doesn't work, I get the error 'PLS-00382: expression is of wrong type'. I foolishly assumed, that since a_array derives from the same source Oracle type as the variable v_CompParams, that there would be no problem casting between them. Any help much appreciated. Kind Regards Paul J.

    Read the article

  • remove values from an array php

    - by LiveEn
    I have a array of links and i have another array which contains certain values i would like to filter in the list eg: http://www.liquidshredder.co.uk/shop%3Fkw%3Dsurfboards%26fl%3D330343%26ci%3D3889610385%26network%3Ds http://www.bournemouth-surfing.co.uk/index.php%3FcPath%3D32 http://www.stcstores.co.uk/wetsuit-range-sizing--pricing-info-1-w.asp http://www.kingofwatersports.com/wetsuit-sale-c227.html http://www.uk.best-price.com/search/landing/query/bodyboards/s/google/altk/Surf%2Band/koid/1944273223/ http://www.surfinghardware.co.uk/Results.cfm%3Fcategory%3D20%26kw%3Dbodyboards%26fl%3D11407%26ci%3D3326979552%26network%3Ds http://www.teste.co.uk/adtrack/baod.html http://www.teste.co.uk/bodyboards/ www.sandskater.co.uk/ www.sandskater.co.uk/bodyboards/+Bodyboards&sa=X&ei=GwSWS-KaGM24rAeF-vCKDA&ved=0CBMQHzAKOAo http://www.extremesportstrader.co.uk/buy/water/bodyboarding/ www.extremesportstrader.co.uk/buy/water/bodyboarding/+Bodyboards&sa=X&ei=GwSWS-KaGM24rAeF-vCKDA&ved=0CBYQHzALOAo www.circle-one.co.uk/+Bodyboards&sa=X&ei=GwSWS-KaGM24rAeF-vCKDA&ved=0CBkQHzAMOAo http://www.teste.co.uk/bodyboards/p1 http://www.teste.co.uk/bodyboards/p2 http://www.amazon.co.uk/s/%3Fie%3DUTF8%26keywords%3Dbodyboards%26tag%3Dgooghydr-21%26index%3Daps%26hvadid%3D4764625891%26ref%3Dpd_sl_2lyzsfw1ar_e http://www.teste.co.uk/bodyboards/p3 www.extremesportstrader.co.uk/buy/water/ and i would like to remove all the instances of "http://www.teste.co.uk"? i tried the below code but it doesn't work :( $remove=array("teste.co.uk","127.0.0.1","localhost","wikipedia.org","gmail.com","answers.yahoo.com"); foreach ($list[0] as $key=>$clean) { if (in_array($clean,$remove)) { unset($list[0][$key]); } echo $clean; echo '<br>'; }

    Read the article

  • Please help with passing multidimensional arrays

    - by nn
    Hi, I'm writing a simple test program to pass multidimensional arrays. I've been struggling to get the signature of the callee function. void p(int (*s)[100], int n) { ... } In the code I have: int s1[10][100], s2[10][1000]; p(s1, 100); This code appears to work, but it's not what I intended. I want to the function p to be oblivious whether the range of values is 100 or 1000, but it should know there are 10 pointers. I tried as a first attempt: void p(int (*s)[10], int n) // n = # elements in the range of the array and also: void p(int **s, int n) // n = # of elements in the range of the array But to no avail can I seem to get this correct. I don't want to hardcode the 100 or 1000, but instead pass it in, but there will always be 10 arrays. Obviously, I want to avoid having to declare the function: void p(int *s1, int *s2, int *s3, ..., int *s10, int n) FYI, I'm looking at the answers to a similar question but still confused.

    Read the article

  • PHP , How can I get values out of a complex array ?

    - by Joe appleton
    I am calling a soap function that returns the following array: Array ( [FastAddressResult] = Array ( [IsError] = false [ErrorNumber] = 0 [ErrorMessage] = [Results] = Array ( [Address] = Array ( [Id] = 13872147.00 [OrganisationName] = [DepartmentName] = [Line1] = Methley Grove [Line2] = [Line3] = [Line4] = [Line5] = [PostTown] = Leeds [County] = West Yorkshire [Postcode] = LS7 3PA [Mailsort] = 64121 [Barcode] = [IsResidential] = false [IsSmallOrganisation] = false [IsLargeOrganisation] = false [RawData] = [GeographicData] = Array ( [GridEastM] = 0 [GridNorthM] = 0 [Objective2] = false [Transitional] = false [Longitude] = 0 [Latitude] = 0 [WGS84Longitude] = 0 [WGS84Latitude] = 0 ) ) ) ) I need to exstract the values the following does not seem to work:          $this-adressline1 = $result-FastAddressResult-Results-Address-Line1; Any ideas ?

    Read the article

  • How can I pass a const array or a variable array to a function in C?

    - by CSharperWithJava
    I have a simple function Bar that uses a set of values from a data set that is passed in in the form of an Array of data structures. The data can come from two sources: a constant initialized array of default values, or a dynamically updated cache. The calling function determines which data is used and should be passed to Bar. Bar doesn't need to edit any of the data and in fact should never do so. How should I declare Bar's data parameter so that I can provide data from either set? union Foo { long _long; int _int; } static const Foo DEFAULTS[8] = {1,10,100,1000,10000,100000,1000000,10000000}; static Foo Cache[8] = {0}; void Bar(Foo* dataSet, int len);//example function prototype Note, this is C, NOT C++ if that makes a difference; Edit Oh, one more thing. When I use the example prototype I get a type qualifier mismatch warning, (because I'm passing a mutable reference to a const array?). What do I have to change for that?

    Read the article

  • Default boolean value in a array of record - Delphi

    - by James
    Hi, I am helping out my company with some old delphi 7 code. There is a record declared at the start that is used throughout to store all the data we want outputted. type TOutput_Type = record result: String; resultoffset: String; selected: boolean; resultcategory: integer; end; and then an array of this is declared Output: array of TOutput_Type; The length is set at the start to a large value, as actual length is unknown. This array is used all over the place, but unfortunately the value selected is not always set when used. My problem is I am adding in a summary of the data, but because selected is not set, delphi seems to give it a random true or false status. Is there a way of setting all instances of selected as true at the start? Seems like a simple enough thing to do, but I'm not a delphi programmer so am unsure if its possible? I know I can go through and add in selected := true every time a new record is made, but I'd like to do it cleanly at the start if possible.... Thanks in advance

    Read the article

  • Define an empty array in Perl class new()

    - by Laimoncijus
    Hi, I am just beginner with Perl, so if it sounds stupid - sorry for that :) My problem is - I am trying to write a class, which has an empty array, defined in constructor of a class. So I am doing this like this: package MyClass; use strict; sub new { my ($C) = @_; my $self = { items => () }; bless $self, ref $C || $C; } sub get { return $_[0]->{items}; } 1; Later I am testing my class with simple script: use strict; use Data::Dumper; use MyClass; my $o = MyClass->new(); my @items = $o->get(); print "length = ", scalar(@items), "\n", Dumper(@items); And while running the script I get following: $ perl my_test.pl length = 1 $VAR1 = undef; Why am I doing wrong what causes that I get my items array filled with undef? Maybe someone could show me example how the class would need to be defined so I would not get any default values in my array? Thanks!

    Read the article

  • trouble calculating offset index into 3D array

    - by Derek
    Hello, I am writing a CUDA kernel to create a 3x3 covariance matrix for each location in the rows*cols main matrix. So that 3D matrix is rows*cols*9 in size, which i allocated in a single malloc accordingly. I need to access this in a single index value the 9 values of the 3x3 covariance matrix get their values set according to the appropriate row r and column c from some other 2D arrays. In other words - I need to calculate the appropriate index to access the 9 elements of the 3x3 covariance matrix, as well as the row and column offset of the 2D matrices that are inputs to the value, as well as the appropriate index for the storage array. i have tried to simplify it down to the following: //I am calling this kernel with 1D blocks who are 512 cols x 1row. TILE_WIDTH=512 int bx = blockIdx.x; int by = blockIdx.y; int tx = threadIdx.x; int ty = threadIdx.y; int r = by + ty; int c = bx*TILE_WIDTH + tx; int offset = r*cols+c; int ndx = r*cols*rows + c*cols; if((r < rows) && (c < cols)){ //this IF statement is trying to avoid the case where a threadblock went bigger than my original array..not sure if correct d_cov[ndx + 0] = otherArray[offset]; d_cov[ndx + 1] = otherArray[offset] d_cov[ndx + 2] = otherArray[offset] d_cov[ndx + 3] = otherArray[offset] d_cov[ndx + 4] = otherArray[offset] d_cov[ndx + 5] = otherArray[offset] d_cov[ndx + 6] = otherArray[offset] d_cov[ndx + 7] = otherArray[offset] d_cov[ndx + 8] = otherArray[offset] } When I check this array with the values calculated on the CPU, which loops over i=rows, j=cols, k = 1..9 The results do not match up. in other words d_cov[i*rows*cols + j*cols + k] != correctAnswer[i][j][k] Can anyone give me any tips on how to sovle this problem? Is it an indexing problem, or some other logic error?

    Read the article

  • C# array of objects - conditional validation

    - by fishdump
    Sorry about the vague title! I have an class with a number of member variables (system, zone, site, ...) public sealed class Cello { public String Company; public String Zone; public String System; public String Site; public String Facility; public String Process; //... } I have an array of objects of this class. private Cello[] m_cellos = null; // ... I need to know whether the array contains objects with the same site but different systems, zones or companies since such a situation would be illegal. I have various other checks to make but they are all along similar lines. The Array class has a number of functions that look promising but I am not very up on defining 'key selector' functions and things like that. Any suggestions or pointers would be greatly appreciated. --- Alistair.

    Read the article

  • Building an array out of values from another array

    - by George
    This is a follow up from a question of mine that was just answered concerning parsing numbers in an array. I have an array, data[], with numbers that I'd like to use in a calculation and then put the resulting values into another array. So say data[0] = 100. I'd like to find a percentage using the calculatin, (data[0]/dataSum*100).toFixed(2) where dataSum is the sum of all the numbers in data[]. I've tried: dataPercentage = []; for (var i=0; i < data.length; i++) { data[i] = parseFloat(data[i]); dataSum += data[i]; // looping through data[i] and setting it equal to dataPercentage. dataPercentage[] = (data[i]/dataSum*100).toFixed(2); // thought maybe I was overriding dataPercentage everytime I looped? dataPercentage[] += (data[i]/dataSum*100).toFixed(2); } I also tried just setting dataPercentage = [(data/dataSum*100).toFixed(2)], but I think this creates a nested array, which I don't think is what I need.

    Read the article

  • Adding a ActionPerformed Array to a String Array

    - by user267490
    Hey, Before you guys ask, yes I've searched online for the answer, but everything I found just leaves a lil confuse and nothing is recent so asking in those forums won't really help. My problems is this: I have an array that holds my name for a menu. String[] fontColor = new String[] {"Red", "Blue", "Green"}; for (int i = 0; i < fontColors.length; i++) { JMenuItem fontC = new JMenuItem(fontColors[i]); fontC.addActionListener(new fontColorAction()); changeFontColor.add(fontC); } Then I have an array that holds my color change in a class called fontColorAction in that class I have another array that does the same thing as my string array except all thats in the statement is textarea.setForeground(colorArr[i]); that will set the setForeground() in order, but now how do I successfully attact the action listner in my class to my menuItems? my class looks like this private class fontColorAction implements ActionListener { Color[] colorArr - new Color[] {"Color.RED","Color.BLUE","Color.GREEN"}; public void actionPerformed(ActionEvent e){ for(i = 0; i < collorArr.length; i++){ textarea.setForeground(colorArr[i]); } } }

    Read the article

  • Collect all fields in form to an array

    - by Industrial
    Hi everyone, Each div with the class "row" is added upon request from the user, to be able to add multiple items at once. So now is the question how I'll collect all the forms in to an array that PHP can read (like JSON for instance). I'll guess that there's already some easy and effective way of doing this? <div class="container"> <div class="row"> <input type="text" name="value1" id="textfield" /> <input type="text" name="value2" id="textfield" /> <input type="text" name="value3" id="textfield" /> </div> </div> Here's what I would like to achieve out of the shown example: array( array ('value1' => '', 'value2' => '', 'value3' => '') ); Thanks! Update: The form will be handled with PHP and it would be super to be able to do something like a foreach loop on the specific container-div content.

    Read the article

  • Another php array looping question

    - by Dan
    Been battling with this one for what seems, like forever. I have an array: $url_array It contains this info: Array ( [ppp] => Array ( [0] => stdClass Object ( [id] => 46660 [entity_id] => 0 [redirect_url] => http://www.google.com [type] => Image ) [1] => stdClass Object ( [id] => 52662 [entity_id] => 0 [pixel_redirect_url] => http://www.yahoo.com [type] => Image ) [2] => stdClass Object ( [id] => 53877 [entity_id] => 0 [redirect_url] => http://www.msn.com [pixel_type] => Image ) ) [total_count] => 3 ) I need to loop through it, and do things to each variable. I can get this to work: foreach ($piggies_array as $key => $value) { $id = $value[0]->id; $redirect_url = $value[0]->redirect_url; } Not unsurprisingly, it's only echoing the first value of those variables, but no matter what I try I cannot get it to loop through: $value->redirect_url; $value=>redirect_url; I would appreciate any help.

    Read the article

  • looping array inside list in c#

    - by 3yoon af
    I have a list of array that contains multiple arrays. each array has 2 index .. First, I want to loop the list. Then i want to loop the array inside the list .. How can i do that ? I try to use this way, but it doesn't work ! foreach (string[] s in ArrangList1) { int freq1 = int.Parse(s[1]); foreach (string[] s1 in ArrangList) { int freq2 = int.Parse(s1[1]); if (freq1 < freq2) { backup = s; index1 = ArrangList1.IndexOf(s); index2 = ArrangList.IndexOf(s1); ArrangList[index1] = s1; ArrangList[index2] = s; } backup = null; } } it give me error in line 4.. I try to do the loop using other way .. but i don't know how to continue ! for (int i = 0; i < ArrangList1.Count; i++) { for (int j = 0; j < ArrangList1[i].Length; j++) { ArrangList1[i][1]; } } I use C# language .. Can someone help me, please?

    Read the article

  • Passing array of pointers to another class

    - by user310153
    Hi, I am trying to do the following: in main.cpp: // Create an array of pointers to Block objects Block *blk[64]; for (i=0; i<8; i++) { for (j=0; j<8; j++) { int x_low = i*80; int y_low = j*45; blk[j*8+i] = new Block(30, x_low+40.0f, y_low+7.5f, &b); } } And then I am trying to pass it to the graphics object I have created: Graphics g(640, 480, &b, &p, blk[0], number_of_blocks); the graphics constructor looks like: Graphics::Graphics(int width, int height, Ball *b, Paddle *p, Block *blk, int number_of_blocks) { if I look at what is contained in the array from the graphics object, only the first item exists and then all the other items are in hyperspace: for (int i=0; i<64; i++) { printf("for block %d, %f, %f ", i, (_blk+(sizeof(_blk)*i))->_x_low, (_blk+(sizeof(_blk)*i))->_y_low); printf("blah %d\n", (_blk+(sizeof(_blk)*i))); } and if I look at the addresses, they are different (6956552 rather than 2280520 when I examine the addresses in the main class using: printf(" blah %d\n", &blk[j*8*i]); I am sure there must be something subtle I am doing wrong as its like I have copied the first item from the blk array to a new address when passed to the graphics object. Does this make sense? Any ideas? Cheers, Scott

    Read the article

  • Problems Expanding an Array in C++

    - by dxq
    I'm writing a simulation for class, and part of it involves the reproduction of organisms. My organisms are kept in an array, and I need to increase the size of the array when they reproduce. Because I have multiple classes for multiple organisms, I used a template: template <class orgType> void expandarray(orgType* oldarray, int& numitems, int reproductioncount) { orgType *newarray = new orgType[numitems+reproductioncount]; for (int i=0; i<numitems; i++) { newarray[i] = oldarray[i]; } numitems += reproductioncount; delete[] oldarray; oldarray = newarray; newarray = NULL; } However, this template seems to be somehow corrupting my data. I can run the program fine without reproduction (commenting out the calls to expandarray), but calling this function causes my program to crash. The program does not crash DURING the expandarray function, but crashes on access violation later on. I've written functions to expand an array hundreds of times, and I have no idea what I screwed up this time. Is there something blatantly wrong in my function? Does it look right to you? EDIT: Thanks for everyone's help. I can't believe I missed something so obvious. In response to using std::vector: we haven't discussed it in class yet, and as silly as it seems, I need to write code using the methods we've been taught.

    Read the article

  • Filling array with numbers

    - by Ockonal
    Hello, I have such situation: There is 8 div-blocks with ids like 'rateN_wrapper' where is 'N' is the number of div: <div id="rate1_wrapper"> <a href="#" id="0_1">...</a> <a href="#" id="0_2">...</a> <a href="#" id="0_3">...</a> </div> <div id="rate2_wrapper"> <a href="#" id="1_1">...</a> <a href="#" id="1_2">...</a> <a href="#" id="1_3">...</a> </div> ... var ratings = new Array(); for (i=0; i < 8; i++) { ratings[i] = -1; // Default is unrated } for (i=0; i < 8; i++) { $('#rate' + i + '_wrapper a').click(function() { ratings[i] = parseInt( $(this).attr('id').split('_')[1] ); console.debug(ratings); }); } My work is to fill array in need place with clicked link's id (parsed). But it's always changes only latest element of array (8). Why?

    Read the article

  • Adding images to an array memory issue

    - by Friendlydeveloper
    Hello all, I'm currently facing the following issue: My app dynamically creates images (320 x 480 pixels) and adds them to a NSMutableArray. I need those images inside that array in order to allow users to browse through them back and forth. I only need to keep the latest 5 images. So I wrote a method like below: - (void)addImageToArray:(UIImage*)theImage { if ([myMutableArray count] < 5) { [myMutableArray addObject:theImage]; } else { [myMutableArray removeObjectAtIndex:0]; [myMutableArray addObject:theImage]; } } This method basically does what it's supposed to do. However, in instruments I can see, that memory usage is permanently incrementing. At some point, even though I do not have any memory leaks, the app finally crashes. The way I see it, XCode does remove the image from my array, but does not release it. Is there a way I can make sure, that the object I want to remove from my array will also get released? Maybe my approach is completely wrong and I need to find a different way. Any help appreciated. Thanks in advance

    Read the article

  • How to trace a function array argument in DTrace

    - by uejio
    I still use dtrace just about every day in my job and found that I had to print an argument to a function which was an array of strings.  The array was variable length up to about 10 items.  I'm not sure if the is the right way to do it, but it seems to work and is not too painful if the array size is small.Here's an example.  Suppose in your application, you have the following function, where n is number of item in the array s.void arraytest(int n, char **s){    /* Loop thru s[0] to s[n-1] */}How do you use DTrace to print out the values of s[i] or of s[0] to s[n-1]?  DTrace does not have if-then blocks or for loops, so you can't do something like:    for i=0; i<arg0; i++        trace arg1[i]; It turns out that you can use probe ordering as a kind of iterator. Probes with the same name will fire in the order that they appear in the script, so I can save the value of "n" in the first probe and then use it as part of the predicate of the next probe to determine if the other probe should fire or not.  So the first probe for tracing the arraytest function is:pid$target::arraytest:entry{    self->n = arg0;}Then, if I want to print out the first few items of the array, I first check the value of n.  If it's greater than the index that I want to print out, then I can print that index.  For example, if I want to print out the 3rd element of the array, I would do something like:pid$target::arraytest:entry/self->n > 2/{    printf("%s",stringof(arg1 + 2 * sizeof(pointer)));}Actually, that doesn't quite work because arg1 is a pointer to an array of pointers and needs to be copied twice from the user process space to the kernel space (which is where dtrace is). Also, the sizeof(char *) is 8, but for some reason, I have to use 4 which is the sizeof(uint32_t). (I still don't know how that works.)  So, the script that prints the 3rd element of the array should look like:pid$target::arraytest:entry{    /* first, save the size of the array so that we don't get            invalid address errors when indexing arg1+n. */    self->n = arg0;}pid$target::arraytest:entry/self->n > 2/{    /* print the 3rd element (index = 2) of the second arg. */    i = 2;    size = 4;    self->a_t = copyin(arg1+size*i,size);    printf("%s: a[%d]=%s",probefunc,i,copyinstr(*(uint32_t *)self->a_t));}If your array is large, then it's quite painful since you have to write one probe for every array index.  For example, here's the full script for printing the first 5 elements of the array:#!/usr/sbin/dtrace -spid$target::arraytest:entry{        /* first, save the size of the array so that we don't get           invalid address errors when indexing arg1+n. */        self->n = arg0;}pid$target::arraytest:entry/self->n > 0/{        i = 0;        size = sizeof(uint32_t);        self->a_t = copyin(arg1+size*i,size);        printf("%s: a[%d]=%s",probefunc,i,copyinstr(*(uint32_t *)self->a_t));}pid$target::arraytest:entry/self->n > 1/{        i = 1;        size = sizeof(uint32_t);        self->a_t = copyin(arg1+size*i,size);        printf("%s: a[%d]=%s",probefunc,i,copyinstr(*(uint32_t *)self->a_t));}pid$target::arraytest:entry/self->n > 2/{        i = 2;        size = sizeof(uint32_t);        self->a_t = copyin(arg1+size*i,size);        printf("%s: a[%d]=%s",probefunc,i,copyinstr(*(uint32_t *)self->a_t));}pid$target::arraytest:entry/self->n > 3/{        i = 3;        size = sizeof(uint32_t);        self->a_t = copyin(arg1+size*i,size);        printf("%s: a[%d]=%s",probefunc,i,copyinstr(*(uint32_t *)self->a_t));}pid$target::arraytest:entry/self->n > 4/{        i = 4;        size = sizeof(uint32_t);        self->a_t = copyin(arg1+size*i,size);        printf("%s: a[%d]=%s",probefunc,i,copyinstr(*(uint32_t *)self->a_t));} If the array is large, then your script will also have to be very long to print out all values of the array.

    Read the article

  • How to find an element in an array in C

    - by gkaykck
    I am trying to find the location of an element in the array. I have tried to use this code i generated for(i=0;i<10;i++) { if (strcmp(temp[0],varptr[i])==0) j=i; } varptr is a pointer which points to array var[11][10] and it is by the definition *varptr[11][10]. I have assigned strings to var[i] and i want to get the "i" number of my element NOT THE ADRESS. Thanks for any comment. EDit: temp is also a pointer which points to the string that i want to check. Also i am using the 2D array for keeping variable names and their address. So yes i want to keep it inside a 2D array. The question is this code is not working at all, it does not assigns i to j, so i wonder where is the problem with this idea? writing a "break" does not change if the code works or not, it just optimizes the code a little. Full Code: #include <stdio.h> #include <string.h> #include <ctype.h> double atof(char*); int main(void) { char in[100], *temp[10],var[11][10],*varptr[11][10]; int i,j, n = 0,fullval=0; double val[11]; strcpy(var[11], "ans"); for(i=0;i<11;i++) { for(j=0;j<10;j++) varptr[i][j]=&var[i][j]; } START: printf("Enter the expression: "); fflush(stdout); for(i=0;i<10;i++) temp[i]=NULL; if (fgets(in, sizeof in, stdin) != NULL) { temp[0] = strtok(in, " "); if (temp[0] != NULL) { for (n = 1; n < 10 && (temp[n] = strtok(NULL," ")) != NULL; n++) ; } if (*temp[0]=="quit") { goto FINISH;} if (isdigit(*temp[0])) { if (*temp[1]=='+') val[0] = atof(temp[0])+atof(temp[2]); else if (*temp[1]=='-') val[0] = atof(temp[0])-atof(temp[2]); else if (*temp[1]=='*') val[0] = atof(temp[0])*atof(temp[2]); else if (*temp[1]=='/') val[0] = atof(temp[0])/atof(temp[2]); printf("%s = %f\n",var[11],val[0]); goto START; } else if (temp[1]==NULL) //asking the value of a variable { for(i=0;i<10;i++) { if (strcmp(temp[0],varptr[i])==0) j=i; } printf("%s = %d\n",var[j],val[j]); goto START; } if (*temp[1]==61) { strcpy(var[fullval], temp[0]); if ((temp[3])!=NULL) { } val[fullval]=atof(temp[2]); printf("%s = %f\n",var[fullval],val[fullval]); fullval++; goto START; } if (*temp[1]!=61) { } } getch(); FINISH: return 0; }

    Read the article

  • Creating a multidimensional array

    - by Jess McKenzie
    I have the following response and I was wanting to know how can I turn it into an multidimensional array foreach item [0][1] etc Controller $rece Response: array(16) { ["digital_delivery"]=> int(1) ["original_referrer"]=> string(11) "No Referrer" ["shop_rule_us_state_code"]=> string(1) "0" ["subtotal_ex_vat"]=> string(4) "9.99" ["subtotal_inc_vat"]=> string(4) "9.99" ["tax_amount"]=> string(4) "0.00" ["delivery_price"]=> string(4) "0.00" ["discount_deduction"]=> string(4) "0.00" ["currency_code"]=> string(3) "GBP" ["total"]=> string(4) "9.99" ["paid"]=> int(1) ["created"]=> string(19) "2013-10-31 21:03:44" ["website_id"]=> string(2) "64" ["first_name"]=> string(3) "Joe" ["last_name"]=> string(5) "Blogs" ["email"]=> string(17) "[email protected]" } array(16) { ["digital_delivery"]=> int(1) ["original_referrer"]=> string(11) "No Referrer" ["shop_rule_us_state_code"]=> string(1) "0" ["subtotal_ex_vat"]=> string(4) "9.99" ["subtotal_inc_vat"]=> string(4) "9.99" ["tax_amount"]=> string(4) "0.00" ["delivery_price"]=> string(4) "0.00" ["discount_deduction"]=> string(4) "0.00" ["currency_code"]=> string(3) "GBP" ["total"]=> string(4) "9.99" ["paid"]=> int(1) ["created"]=> string(19) "2013-10-31 21:03:44" ["website_id"]=> string(2) "64" ["first_name"]=> string(3) "Joe" ["last_name"]=> string(5) "Blogs" ["email"]=> string(13) "[email protected]" } array(16) { ["digital_delivery"]=> int(1) ["original_referrer"]=> string(11) "No Referrer" ["shop_rule_us_state_code"]=> string(1) "0" ["subtotal_ex_vat"]=> string(4) "9.99" ["subtotal_inc_vat"]=> string(4) "9.99" ["tax_amount"]=> string(4) "0.00" ["delivery_price"]=> string(4) "0.00" ["discount_deduction"]=> string(4) "0.00" ["currency_code"]=> string(3) "GBP" ["total"]=> string(4) "9.99" ["paid"]=> int(1) ["created"]=> string(19) "2013-10-31 21:03:44" ["website_id"]=> string(2) "64" ["first_name"]=> string(3) "Joe" ["last_name"]=> string(5) "Blogs" ["email"]=> string(15) "[email protected]" } Controller: foreach ($this->receivers as $rece) { $order_data['first_name'] = $rece[0]; $order_data['last_name'] = $rece[1]; $order_data['email'] = $rece[2]; $order_id = $this->orders_model->add_order_multi($order_data, $order_products_data); $this-receivers function: public function parse_receivers($receivers) { $this->receivers = explode( "\n", trim($receivers) ); $this->receivers = array_filter($this->receivers, 'trim'); $validReceivers = false; foreach($this->receivers as $key=>$receiver) { $validReceivers = true; $this->receivers[$key] = array_map( 'trim', explode(',', $receiver) ); if (count($this->receivers[$key]) != 3) { $line = $key + 1; $this->form_validation->set_message('parse_receivers', "There is an error in the %s at line $line ($receiver)"); return false; } } return $validReceivers; }

    Read the article

  • Convert a byte array to a class containing a byte array in C#

    - by Mathijs
    I've got a C# function that converts a byte array to a class, given it's type: IntPtr buffer = Marshal.AllocHGlobal(rawsize); Marshal.Copy(data, 0, buffer, rawsize); object result = Marshal.PtrToStructure(buffer, type); Marshal.FreeHGlobal(buffer); I use sequential structs: [StructLayout(LayoutKind.Sequential)] public new class PacketFormat : Packet.PacketFormat { } This worked fine, until I tried to convert to a struct/class containing a byte array. [StructLayout(LayoutKind.Sequential)] public new class PacketFormat : Packet.PacketFormat { public byte header; public byte[] data = new byte[256]; } Marshal.SizeOf(type) returns 16, which is too low (should be 257) and causes Marshal.PtrToStructure to fail with the following error: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. I'm guessing that using a fixed array would be a solution, but can it also be done without having to resort to unsafe code?

    Read the article

< Previous Page | 22 23 24 25 26 27 28 29 30 31 32 33  | Next Page >