PDA

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>