PDA

View Full Version : ذخیره چندین هزار struct



abasfar
پنج شنبه 08 اردیبهشت 1390, 17:29 عصر
سلام
من میخوام چندین هزار struct را برای صرفه جویی در وقت و منبع یکجا یا حد اقل struct به struct
ذخیره کنم اما نمیدونم بهینه ترین راه چییه میشه راهنمایی کنید

ساختار Struct


struct Time
{

private int hours, minutes, seconds;
}

class Example
{
public void Method(Time parameter)
{
Time localVariable;

}
private Time field;
}

حمیدرضاصادقیان
شنبه 10 اردیبهشت 1390, 08:07 صبح
سلام.
برای چی میخواهید Struct ها رو ذخیره کنید. منظور از صرفه جویی در وقت ومنبع یعنی چی؟ مگه میخواهید چیکار کنید.؟
لطفا دقیقتر توضیح بفرمائید.

abasfar
شنبه 10 اردیبهشت 1390, 14:25 عصر
ممنون از جواب شما


برای چی میخواهید Struct ها رو ذخیره کنید.

خوب برای حفظ داده اگر به برنامه برگشتم همان داده ها را بتوانم لود کنم



منظور از صرفه جویی در وقت ومنبع یعنی چی؟ مگه میخواهید چیکار کنید.؟

خوب راستش من میخوام ایندکس گزاری سایت مثل بلاگفا را انجام بدم و شاید هم خیلی بزرگتر ازان
1-خواندن صفحه
2-تشخیص کلمات کلیدی
3-مرتب سازی
4-وغییره
خواب در یک سرور وب به نظر من ترافیک وبار سرور زیادی میگیره

حمیدرضاصادقیان
شنبه 10 اردیبهشت 1390, 15:15 عصر
سلام.

این کار شما راهش این نیست که بیاید struct ها رو ذخیره کنید. خوب هر Struct رو که بخواهید فراخوانی کنید یک حجمی رو در برمیگیره.
اگر بتوانید نمونه جداول ساخته شده رو اینجا قرار بدید بعد دقیقا صورت مسئله رو شفاف کنید میشه طراحی بهتری براش درنظر گرفت که از لحاظ بارترافیکی روی وب هم به مشکل برنخوره.

abasfar
سه شنبه 13 اردیبهشت 1390, 11:33 صبح
خوب دوست عزیز من این کار را انجام دادم
من یک procedure در msSql ساختم که ورودی به صورت زیر میباشد




p='1,2,3,5,1448521455,6985,4' ; f=12 ; h =8552222222222222222


حالا میخوام ان رشته را جدا کنم از ',' و در جدول به صورت عدد که در زیر امده ذخیره کنم





8552222222222222222|12|1
8552222222222222222|12|2
.
.
.
.
8552222222222222222|12|1448521455
.
.

در واقع رشته اول در بقیه رشته ها بعد از جدا شدن ضرب میشود
ممنون

حمیدرضاصادقیان
سه شنبه 13 اردیبهشت 1390, 16:58 عصر
میشه در مورد اطلاعاتی که وارد دیتابیس میکنید توضیح بدید؟
آیا این مقادیری که بوسیله SP وارد دیتابیس میکنید هرکدام یک فیلد جداگانه هستند ؟ یا همه اینها یک مقدار هستند؟

abasfar
سه شنبه 13 اردیبهشت 1390, 19:02 عصر
ممنون از جواب شما نه هرکدام یک فیلد هستند من کدی تو این مایه ها را امتحان کردم اما مشکل دارد

Declare @BacthData varchar(2000)
set @BacthData='1,2,3|4,5,6|7,8,9'

Declare @part VARCHAR(100), @remainingpart VARCHAR(100),
@balance VARCHAR(2000),@balancevar varchar(100),@var1 varchar(500),@counter int,@innercounter int
declare @table table (counter int, innercounter int, var1 varchar(500))

set @counter=0
while(@BacthData<>'')
BEGIN
--PRINT 'OUTER'
set @counter=@counter+1
SET @part = SUBSTRING(@BacthData,0,CHARINDEX('|',@BacthData))

SET @remainingpart=@part
print @part

--truncate table #setvalues
set @innercounter=0
while (@part<>'')
Begin
set @innercounter=@innercounter+1

set @var1= SUBSTRING(@part,0,CHARINDEX(',',@part))

insert into @table values(@counter,@innercounter,@var1)

set @balancevar =SUBSTRING (@part,len(@var1)+2,len(@part))

SET @part=@balancevar

End

--select * from #setvalues

set @balance =SUBSTRING (@BacthData,len(@remainingpart)+4,len(@BacthData))

set @BacthData=@balance


END

select * from @table

خروجی


1 1 1
1 2 2
1 3
2 1 5
2 2

محمد سلیم آبادی
سه شنبه 13 اردیبهشت 1390, 20:19 عصر
در پاسخ به پست شماره 5 شما از روشی که در اینجا معرفی شده می تونین رشته رو تجزیه کنید:
http://www.30sharp.com/article/13/224/11/%d8%aa%d8%ac%d8%b2%db%8c%d9%87-%da%a9%d8%b1%d8%af%d9%86-%db%8c%da%a9-%d8%b1%d8%b4%d8%aa%d9%87-%d8%a8%d9%87-%d8%b9%d9%86%d8%a7%d8%b5%d8%b1-%d8%a2%d9%86.aspx
برای ضرب شدن نتیجه با یک مقدار کافیه از ضرب دکارتی استفاده کنید

abasfar
پنج شنبه 15 اردیبهشت 1390, 15:30 عصر
ممنون دوست عزیز
اما من هرچه بالا پایین کردم تفکیک دو تایی نتونستم بسازم



و



|

محمد سلیم آبادی
پنج شنبه 15 اردیبهشت 1390, 15:58 عصر
میخواهی این خروجی رو با در نظر گرفتن ورودی ذکر شده داشته باشین:

Declare @BacthData varchar(2000)
set @BacthData='1,2,3|4,5,6|7,8,9'

Output:

c1----c2------c3
________________
1-----2-------3
4-----5-------6
7-----8-------9


اگه همینه. ابتدا سطرها رو از هم تفکیک کنید توسط کاراکتر | سپس با تابع PARSNAME بیایین مقدار رو به چند ستون تفکیک کنید بر اساس کاراکتر کاما
چیزی شبیه به اتفاقی که تو کدهای این پست افتاده
http://www.30sharp.com/article/13/223/11/%D9%BE%DB%8C%D8%A7%D8%AF%D9%87-%D8%B3%D8%A7%D8%B2%DB%8C-%D8%B1%D9%88%D8%B4-%D8%AC%D8%A7%DB%8C%DA%AF%D8%B2%DB%8C%D9%86-%D8%A8%D8%B1%D8%A7%DB%8C-tvp.aspx