View Full Version : ایجاد حلقه
swith1996
سه شنبه 14 خرداد 1392, 18:17 عصر
سلام
برنامه من صفحه اینترنتی لود میکنه یک حلقه میخوام درست کنم که یک شماره رو از دیتابیس بخونه و وارد سایت کنه و یسری کار ها دیگه ...
فقط همین حلقه درست نمی شه چون که یک تایمر هم هست حالا از شما می خوام کمکم کنید که چطوری حلقه رو درست کنم
ممنون(خیلی لازم دارم)
mehran901
سه شنبه 14 خرداد 1392, 19:42 عصر
حلقه دیگه چی داره که مشکل داری با نوشتنش ؟!
حلقه do loop
do until condition
loop
ya
do
loop until condition
تا زمانی که عبارت condition = false حلقه ادامه پیدا میکنه برعکس حلقه while
و حلقه For واسه وقتی که مشخصه از چند تا چند باید شمرده بشه ... یا تعداد دفعات تکرار مشخصه
For counter = n1 to n2 step n3
next counter
خب ، counter متغییر شمارنده که تعداد دفعات اجرا شدن حلقه رو در زمانی خاصی شامل میشه!
n2 مقدار ثانویه ای که باید تا اون مقدار شمرده بشه n1 مقدار اولیه
n3 گام اجرایی حلقه
For i = 1 to 10 step 2
next i
حلقه بالا 5 بار اجرا میشه و متغییر شمارنده شمال اعداد 1 و 1 + 2 و 1 + 4 و 1 +6 و 1 + 8 هست
swith1996
سه شنبه 14 خرداد 1392, 22:24 عصر
حلقه دیگه چی داره که مشکل داری با نوشتنش ؟!
حلقه do loop
do until condition
loop
ya
do
loop until condition
تا زمانی که عبارت condition = false حلقه ادامه پیدا میکنه برعکس حلقه while
و حلقه For واسه وقتی که مشخصه از چند تا چند باید شمرده بشه ... یا تعداد دفعات تکرار مشخصه
For counter = n1 to n2 step n3
next counter
خب ، counter متغییر شمارنده که تعداد دفعات اجرا شدن حلقه رو در زمانی خاصی شامل میشه!
n2 مقدار ثانویه ای که باید تا اون مقدار شمرده بشه n1 مقدار اولیه
n3 گام اجرایی حلقه
For i = 1 to 10 step 2
next i
حلقه بالا 5 بار اجرا میشه و متغییر شمارنده شمال اعداد 1 و 1 + 2 و 1 + 4 و 1 +6 و 1 + 8 هست
بابا زحمت زیادی کشیدی دستد درد نکنه
منظورم رو نفهمیدی تو این برنامه باید صفحه اینترنتی لود بشه
بعد یه دونه تایمر هم هست که اون هم باید تو حلقه باشه
ho3ein.3ven
سه شنبه 14 خرداد 1392, 23:21 عصر
بابا زحمت زیادی کشیدی دستد درد نکنه
منظورم رو نفهمیدی تو این برنامه باید صفحه اینترنتی لود بشه
بعد یه دونه تایمر هم هست که اون هم باید تو حلقه باشه
تایمر باید تو حلقه باشه یا حلقه باید تو تایمر باشه ؟
برای لود صفحه چه نیازی به حلقه هست ؟
بیشتر توضیح بدین
swith1996
چهارشنبه 15 خرداد 1392, 09:52 صبح
تایمر باید تو حلقه باشه یا حلقه باید تو تایمر باشه ؟
برای لود صفحه چه نیازی به حلقه هست ؟
بیشتر توضیح بدین
باید در زمانی که صفحه لود شد یک سری کار هایی انجام بده که در Private Sub WebBrowser1_DocumentComplete()
End Sub انجام می شود ولی یک تایمر هم جداگانه هست که اونم باید تو حلقه باشه
حالا چگونه حلقه را ایجاد کنم
ممنون
vbhamed
چهارشنبه 15 خرداد 1392, 10:49 صبح
سلام
لطفا سؤالتون رو واضح و بدون ابهام بپرسيد
منظور از اينكه تايمر تو حلقه باشه يعني چي ؟
بهتره دقيقا بگين كل كاري كه ميخواين انجام بدين چيه نه اينكه قسمتي كه تو ذهن خودتون هست رو بپرسيد تا بچه ها بتونن راهنماييتون كنن
swith1996
چهارشنبه 15 خرداد 1392, 11:16 صبح
سلام
لطفا سؤالتون رو واضح و بدون ابهام بپرسيد
منظور از اينكه تايمر تو حلقه باشه يعني چي ؟
بهتره دقيقا بگين كل كاري كه ميخواين انجام بدين چيه نه اينكه قسمتي كه تو ذهن خودتون هست رو بپرسيد تا بچه ها بتونن راهنماييتون كنن
سورس برنامه من یک چیزی مثل کد پایین است وقتی صفحه لود میشه یک عدد از بانک اطلاعاتی می خونه و وارد سایت می کنه و اطلاعاتی که سایت می ده رو ذخیره می کنه حالا من می خواهم اینکار رو تکرار کنه که مسلما برای این کار باید توی حلقه قرار بدم ولی نمی دونم اون تایمر رو چگونه تو حلقه قرار بدم
ممنون از کسانی که راهنمایی می کنند
Private Sub Command1_Click()
Dim m As Integer
WebBrowser1.Document.getelementbyid("").focus
SendKeys ""
SendKeys "{enter}"
Text1.Text = "1"
End Sub
Private Sub Command2_Click()
WebBrowser1.Document.getelementbyid("bb").focus
SendKeys "^{a}{del}"
SendKeys "{enter}"
Text1.Text = "0"
End Sub
Private Sub Form_Load()
WebBrowser1.Navigate ("آدرس سایت")
End Sub
Private Sub Timer1_Timer()
Dim As String
b = WebBrowser1.Document.getelementbyid("bb").Value
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields("b").Value = b
Timer1 = False
End Sub
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
If Text1.Text = "1" Then
his = WebBrowser1.Document.getelementbyid("h").innertext
Text1.Text = "2"
End If
If Text1.Text = "2" Then
WebBrowser1.Document.All.Item("Customer").Click
Text1.Text = "3"
Timer1.Enabled = True
End If
If Text1.Text = "3" Then
Text1.Text = "0000"
End If
End Sub
vbhamed
چهارشنبه 15 خرداد 1392, 11:51 صبح
سلام
روال كلي كار اينه :
1 - يك صفحه رو لود كنيد
2 - حلقه رو شروع كنيد
3 - پارامترهاتون رو به وب سايت بفرستيد و دكمه Submit يا هر چيز ديگه كه نياز داريد رو فشار بدين
4 - حالا اگر بايد صبر كنيد تا وب سايت جواب بده، نياز به كنترل تايمر نيست ميتونيد با كمك يك حلقه داخلي منتظر بمونيد تا كار وب سايت انجام بشه، مثلا به شكل زير كه 2 ثانيه تاخير ايجاد ميكنه
Dim t!
t = Timer
While Timer < t + 2: DoEvents: Wend
5 - پارامترهاي جديد رو از وب سايت بخونيد
6 - انتهاي حلقه
swith1996
چهارشنبه 15 خرداد 1392, 12:46 عصر
سلام
روال كلي كار اينه :
1 - يك صفحه رو لود كنيد
2 - حلقه رو شروع كنيد
3 - پارامترهاتون رو به وب سايت بفرستيد و دكمه Submit يا هر چيز ديگه كه نياز داريد رو فشار بدين
4 - حالا اگر بايد صبر كنيد تا وب سايت جواب بده، نياز به كنترل تايمر نيست ميتونيد با كمك يك حلقه داخلي منتظر بمونيد تا كار وب سايت انجام بشه، مثلا به شكل زير كه 2 ثانيه تاخير ايجاد ميكنه
Dim t!
t = Timer
While Timer < t + 2: DoEvents: Wend
5 - پارامترهاي جديد رو از وب سايت بخونيد
6 - انتهاي حلقه
وقتی به جای تایمر از اون حلقه داخلی استفاده می کنم ارور میده
صبر می کنه اون دو ثانیه که تموم شد کلیک می کنه با این که من عمل کلیک رو قبل از حلقه داخلی گذاشتم
ممنون می شوم اگر راهنماییم کنید(خیلی لازم دارم)
vbhamed
چهارشنبه 15 خرداد 1392, 17:21 عصر
سلام
اين روش رو چك كنيد، ضمنا براي فشردن دكمه submit از روش زير استفاده كنيد (اسم فرم MyForm هست و اسم دكمه submit)
Private Sub Form_Load()
On Error Resume Next
Dim i%, url$
Me.Show
Me.Move 0, 0
url = "localhost/test/index.htm"
For i = 1 To 1000
With WebBrowser1.Document
WebBrowser1.Navigate url
DoEvents
While WebBrowser1.Busy: DoEvents: Wend
.getelementbyid("T1").Value = i
.getelementbyid("submit").Click
.getelementbyid("MyForm").submit
DoEvents
While WebBrowser1.Busy: DoEvents: Wend
DoEvents
List1.AddItem .getelementbyid("T2").Value
List1.ListIndex = List1.ListCount - 1
DoEvents
End With
Next
End Sub
البته من سايتي كه شما باهاش كار ميكنيد رو نداشتم براي همين يك صفحه html خيلي ساده درست كردم و همچنين يك فايل php كه پارامتري كه در صفحه html در يك تكست باكس به نام T1 وارد شده رو ميگيره و با عدد 100 جمع ميكنه و به عنوان نتيجه در يك تكست باكس به نام T2 برميگردونه، اين فايلها رو در يك پوشه روي سرور آپلود كنيد و در متغير url آدرس فايل html رو بدين
فايل test.php
<html dir="rtl">
<?php
$T1 = $_POST['T1'];
?>
<input type="text" name="T2" value=<?php echo $T1;?>></p>
</body>
</html>
فايل test.htm
<html>
<body>
<form method="POST" action="test.php" name="MyForm" id="MyForm">
<p dir="ltr"><input type="text" name="T1"></p>
<p dir="ltr"><input type="submit" value="submit" name="submit" id="submit"></p>
</form>
</body>
</html>
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.